|
1 |
| -### laboratory-works-Java-2020 |
2 |
| -this is a repo for all laboratory works I coded on Java as a part of my educational process at LPNU IoT 1st course. |
3 |
| -====================================================================================================================================== |
4 |
| -# lab 1 : class usage |
5 |
| -crete a console program that operates with objects of the *Helicopter class*, which contains: 5 private fields; 2 protected fields; static int field; getters and setters; constructor with 4 parameters and constructor with all parameters (use *this()* to avoid code copypasting). override *toString()* method. add *resetValues()* method which changes values of all fields. add *printStatic()* method which returns the value of the static field. in *main()* method create 3 objects of the class, print them, print the static field, and add a do-while cycle in which 4 empty objects are created and saved to an array; them print them as well. |
| 1 | +# laboratory-works-Java-2020 |
| 2 | +this is a repo for all laboratory works I coded on Java as a part of my education process at LPNU IoT 1st course. |
6 | 3 |
|
7 |
| -# lab 2 : UML diagrams |
8 |
| -draw a UML diagram using draw.io for *ConstructionGoods class*. use all the main principles of OOP. add an extra ConstructionGoodsManager class which implements sort- and find- methods, e.g. *sortByWeight()* and *sortByWidth()*, *findCheaperThan()* etc. sorting may be ascending and descending. |
| 4 | +### lab 1 : class usage |
| 5 | +> create a console program that operates with objects of the *Helicopter class*, which contains: 5 private fields; 2 protected fields; static int field; getters and setters; constructor with 4 parameters and constructor with all parameters (use *this()* to avoid code copypasting). override *toString()* method. add *resetValues()* method which changes values of all fields. add *printStatic()* method which returns the value of the static field. in *main()* method create 3 objects of the class, print them, print the static field, and add a do-while cycle in which 4 empty objects are created and saved to an array; them print them as well. |
9 | 6 |
|
10 |
| -# lab 3 : unit testing |
11 |
| -create a maven project. code all the construction goods subclasses in accordance with the UML diagram created as a part of lab 2. use unit testing to call sorting methods (currently empty). edit the code in accordance with *Google style code convention*. |
| 7 | +### lab 2 : UML diagrams |
| 8 | +> draw a UML diagram using draw.io for *ConstructionGoods class*. use all the main principles of OOP. add an extra ConstructionGoodsManager class which implements sort- and find- methods, e.g. *sortByWeight()* and *sortByWidth()*, *findCheaperThan()* etc. sorting may be ascending and descending. |
12 | 9 |
|
13 |
| -# lab 4 : inner classes usage and cleaning the code |
14 |
| -implement sorting methods using comparators made as: *a static inner class*; *an inner class*; *an anonymous inner class*; *lambda expression*. edit the code with *PMD*, *SpotBugs*, and *Checkstyle plugins*, and in accordance with *Google style code convention*. |
| 10 | +### lab 3 : unit testing |
| 11 | +> create a maven project. code all the construction goods subclasses in accordance with the UML diagram created as a part of lab 2. use unit testing to call sorting methods (currently empty). edit the code in accordance with *Google style code convention*. |
15 | 12 |
|
16 |
| -# lab 5 : writing information on objects to a CSV file |
17 |
| -implement writing information on objects to a CSV file. you should use a new *Writer class* with *writeToFile()* method. use *try-with-resources*. also add *getHeaders()* and *toCSV()* methods to all your classes. call these methods from tests. edit the code with *PMD*, *SpotBugs*, and *Checkstyle plugins*, and in accordance with *Google style code convention*. |
| 13 | +### lab 4 : inner classes usage and cleaning the code |
| 14 | +> implement sorting methods using comparators made as: *a static inner class*; *an inner class*; *an anonymous inner class*; *lambda expression*. edit the code with *PMD*, *SpotBugs*, and *Checkstyle plugins*, and in accordance with *Google style code convention*. |
18 | 15 |
|
19 |
| -# lab 7 : migrating to spring boot and REST |
20 |
| -create a *REST service* for one of the classes created in lab 3 with *CRUD operations (Get/Post/Put/Delete)* implementation. *GET* with id in URL-request should return specific object with this id; *GET* without any path variable should return all the objects. expand the class with id field. edit the code with *PMD*, *SpotBugs*, and *Checkstyle plugins*, and in accordance with *Google style code convention*. |
| 16 | +### lab 5 : writing information on objects to a CSV file |
| 17 | +> implement writing information on objects to a CSV file. you should use a new *Writer class* with *writeToFile()* method. use *try-with-resources*. also add *getHeaders()* and *toCSV()* methods to all your classes. call these methods from tests. edit the code with *PMD*, *SpotBugs*, and *Checkstyle plugins*, and in accordance with *Google style code convention*. |
21 | 18 |
|
22 |
| -# lab 8 : connection of the PostgreSQL database |
23 |
| -implement saving the object of one of the lab 3 classes in the table of a database using *Spring Boot* and *Spring Data*. re-write *CRUD operations methods* so that saving and reading the data is done using the database. add *Controller*, *Repository*, and *Service classes*. configure the database connection via *application.properties* file. edit the code with *PMD*, *SpotBugs*, and *Checkstyle plugins*, and in accordance with *Google style code convention*. |
| 19 | +### lab 7 : migrating to spring boot and REST |
| 20 | +> create a *REST service* for one of the classes created in lab 3 with *CRUD operations (Get/Post/Put/Delete)* implementation. *GET* with id in URL-request should return specific object with this id; *GET* without any path variable should return all the objects. expand the class with id field. edit the code with *PMD*, *SpotBugs*, and *Checkstyle plugins*, and in accordance with *Google style code convention*. |
24 | 21 |
|
25 |
| -# lab 9 (bonus) : hibernate mappings |
26 |
| -add 2 additional classes for your application. *ManyToMany relationship* should be established with the first class and *ManyToOne* should be established with the second class. add *Controllers*, *Repositories*, and *Services* for these classes. test REST-methods with *Postman*. edit the code with *PMD*, *SpotBugs*, and *Checkstyle plugins*, and in accordance with *Google style code convention*. |
| 22 | +### lab 8 : connection of the PostgreSQL database |
| 23 | +> implement saving the object of one of the lab 3 classes in the table of a database using *Spring Boot* and *Spring Data*. re-write *CRUD operations methods* so that saving and reading the data is done using the database. add *Controller*, *Repository*, and *Service classes*. configure the database connection via *application.properties* file. edit the code with *PMD*, *SpotBugs*, and *Checkstyle plugins*, and in accordance with *Google style code convention*. |
| 24 | +
|
| 25 | +### lab 9 (bonus) : hibernate mappings |
| 26 | +> add 2 additional classes for your application. *ManyToMany relationship* should be established with the first class and *ManyToOne* should be established with the second class. add *Controllers*, *Repositories*, and *Services* for these classes. test REST-methods with *Postman*. edit the code with *PMD*, *SpotBugs*, and *Checkstyle plugins*, and in accordance with *Google style code convention*. |
0 commit comments