1. Packages in Java.
- Built packages to manage the project conviniently.
com.EMS._abstract
provides interfaces for all classes.com.EMS.core
implements interfaces incom.EMS._abstract
to manage Employees and Organizations.com.EMS.iomanager
implements interfaces incon.EMS.core
to manage data files ofEmployee
andOrganization
classes.
2. Interfaces (Abstraction in Java).
- Built interfaces in package
com.EMS._abstract
to create an abstraction. BaseOrganization
- A base class for classOrganization
incom.EMS.core
.BaseEmployee
- A base class for classEmployee
incom.EMS.core
.IOManager
- A base class for all classes incom.EMS.iomanager
.
3. Getters and Setters.
- Built getters and setters for all the attributes in all the classes in all packages.
- Built getters and setters in class
Employee
present in packagecom.EMS.core
. - Built getters and setters in class
Organization
present in packagecom.EMS.core
. - Built getters and setters in class
IOManagerEmployee
present in packagecom.EMS.iomanager
. - Built getters and setters in class
IOManagerOrganization
present in packagecom.EMS.iomanager
.
4. File Management.
- Use several classes present in package
java.io
for proper file management. - Built package
com.EMS.iomanager
to store Employee and Organization data in files. - class
IOManagerEmployee
manages Employee data. - class
IOManagerOrganization
manages Organization data.
5. Serialization and Deserialization.
- Built serializable classes to save raw java objects as
.ser
files and retrive them later to work with. - Method
serialize
present in classEmployee
(present in packagecom.EMS.core
) serailizesEmployee
objects. - Method
serialize
present in classOrganization
(present in packagecom.EMS.core
) serailizesOrganization
objects. - Static Method
deserialize
present in classEmployee
(present in packagecom.EMS.core
) deserailizesEmployee
objects. - Static Method
deserialize
present in classOrganization
(present in packagecom.EMS.core
) deserailizesOrganization
objects.
6. Multiple Inheitance.
- Perform multiple inheritance in several classes to demonstrate and test the behaviour of different classes and their objects.
7. Polymorphism or Method Overriding.
- Use the concepts of method overriding to perform Polymorphism.
8. Constructor and Parameterized Constructor.
- Create constructor and parameterized constructor for all classes to initialize the attributes appropriately.
9. String and StringBuffer Methods
- Use multiple
String
andStringBuffer
methods for managing the output on console and in files.
10. Exceptions.
- Used
try
,throw
andcatch
blocks to print proper exception message and handle exceptions. Usethrow
andthrows
keywords to throw proper exceptions.
11. Methods and Static Methods.
- Mostly Everything is done using methods and at times static methods is used to deserialize objects.
12. Custom Exceptions and Exception Handling.
- Built
com.EMS.exceptions
package with custom exceptions and add exception handling in all the classes in all packages.
13. A list of keywords used:
this
for accessing class variables.final
to declare constant variables.static
to create a static block of code.try
,catch
,throw
andthrows
for exception management.interface
to create a interface.transient
to declare non-serializable objects.public
andprivate
access modifiers to declare methods, classes and variables.- Many other common and trivial keywords.
1. JavaDoc tool for documentation.
- Used JavaDoc tool to write and generate documentation for the project.
2. Continuous Integration
- Used CI tools like TravisCI and LGTM to automatically build the project.