Link to home
Start Free TrialLog in
Avatar of SunnyX
SunnyX

asked on

Core Java. Envelop for simple data base that uses ArrayLIst container ( Enum may be )

I would like to make a simple project that modulate the database request - response action. The presented below code work fine. However, I would like to make some envelop for my employee database in order to avoid to place it in main function. I thought about Enum class but encounter in some compile error. Moreover, I don't even know does it possible to make Enum work in this way. If not please give me an idea what fit best for my purpose. Thanks in advance dear Experts !

package TaskCh;
import java.util.ArrayList;
import java.util.Calendar;

/**

 */

//********** ************************************************************
 class SearchEngine {

   

    public void searchRequest(ArrayList<Employee> db, int numberOfyears) {
        for (Employee item : db) {
            if (item.getYearsOfWork() >= numberOfyears) {           	
            	item.getRequestedInformation();
            }
        }
    }

}
//********** ************************************************************

//********** ************************************************************

 class Employee { 	// Class Employee // start 
	 
    private String firstName;
    private String middleName;
    private String familyName;
    private String address;
    private int yearOfstart;
    private int monthOfstart;


    // The constructor of the class // starts
    Employee (String firstName,
    		  String middleName,
    		  String familyName,
              String address,
              int yearOfstart,
              int monthOfstart) {
        this.familyName 	= familyName;
        this.firstName 		= firstName;
        this.middleName 	= middleName;
        this.address 		= address;
        this.yearOfstart 	= yearOfstart;
        this.monthOfstart 	= monthOfstart;
    }
    
    // Second constructor ( in case of if middle name's absents )
    Employee (	   
    		String firstName,
    		String familyName,
            // missing middle name of an employee
            String address,
            int yearOfstart,
            int monthOfstart) 
    {
    	this.familyName 	= familyName;
        this.firstName 		= firstName;
        this.address 		= address;
        this.yearOfstart 	= yearOfstart;
        this.monthOfstart 	= monthOfstart;
    }
    
    // The constructor of the class // ends 

    
    //  Implementation of getters methods  // Start 
    public String getFirstName() {
        return firstName;
    }
    
    public String getMiddleName() {
        if (middleName == null) {
            return "";
        } else {
            return middleName;
        }
    }
    
    public String getFamilyName() {
        return familyName;
    }

    

    public String getAddress() {
        return address;
    }


    public int getYearOfStart() {
        return yearOfstart;
    }


    public int getMonthOfStart() {
        return monthOfstart;
    }
    
   

    // Implementation of getters methods //  ends  


    // Business logic // Start 
    
    //  method for calculation of beginning of a career in a company
    
    public int getYearsOfWork () {
        Calendar c = Calendar.getInstance();
        if ( (monthOfstart - 1) <= c.get(Calendar.MONTH) ) {
            return c.get(Calendar.YEAR) - yearOfstart;
        } else {
            return c.get(Calendar.YEAR) - yearOfstart - 1;
        }
    }
    
    public void getRequestedInformation() {
    	System.out.printf ( "\nFull name : %s " ,this.getFirstName()) ;
    	System.out.printf ( "%s " ,this.getMiddleName()) ;
    	System.out.printf ( "%s " ,this.getFamilyName()) ;
    	System.out.printf ( "\nAddress : %s" ,this.getAddress()) ; 
    	System.out.printf ( "\nstart date ( yyyy/mm ) : %s" ,this.getYearOfStart()) ;
    	System.out.printf ( " / %s" ,this.getMonthOfStart()) ;
    	System.out.println("\n\n *** next employee");
      }
    // Business logic // ends  
    
}	// Class Employers //  ends 
// ********** ************************************************************

// 	 enum EmpoyeeDataBase {
//	  
// 	ArrayList<Employee> empoyeeDataBase = new ArrayList<>();
// 	
// 	 empoyeeDataBase.add(new Employee("Jack", "Dorsy","USA, CA, San-Francisco", 2008, 11));
//     empoyeeDataBase.add(new Employee("Barack", "Obama","USA, DC, Washington", 2016, 12));
//     empoyeeDataBase.add(new Employee("Larry ", "Page","USA, CA, San-Francisco", 2015, 10));
//     empoyeeDataBase.add(new Employee("Sergey ","Brin","USA, CA, San-Francisco", 2014, 10));
//     empoyeeDataBase.add(new Employee("Elon", "Musk","USA, CA, Los_Angeles", 2013, 8));		// Works almost 3 years 
//     empoyeeDataBase.add(new Employee("Pavel","M.", "Durov","Russia, Saint-Petersburg", 2012, 12));
//     empoyeeDataBase.add(new Employee("Dmitriy", "V.", "Medvedev","Russia", 2015, 10));
//	  
//  }
 
 

public class TaskCh {
    public static void main(String[] args) {

        // ArrayList of Employee type
        ArrayList<Employee> empoyeeDataBase = new ArrayList<>();

        // Fill ArrayList
        empoyeeDataBase.add(new Employee("Jack", "Dorsy","USA, CA, San-Francisco", 2008, 11));
        empoyeeDataBase.add(new Employee("Barack", "Obama","USA, DC, Washington", 2016, 12));
        empoyeeDataBase.add(new Employee("Larry ", "Page","USA, CA, San-Francisco", 2015, 10));
        empoyeeDataBase.add(new Employee("Sergey ","Brin","USA, CA, San-Francisco", 2014, 10));
        empoyeeDataBase.add(new Employee("Elon", "Musk","USA, CA, Los_Angeles", 2013, 8));		// Works almost 3 years 
        empoyeeDataBase.add(new Employee("Pavel","M.", "Durov","Ukraine, Kiev", 2012, 12));
        empoyeeDataBase.add(new Employee("Dmitriy", "V.", "Medvedev","Ukraine , Lviv", 2015, 10));

        // For each in "a" (print -> not less than 3 years of work)
        System.out.println("Information about Employees who works more than 3 years : ");
        SearchEngine yearRequest = new SearchEngine();
        yearRequest.searchRequest(empoyeeDataBase, 3);
        
        
   
    }
}

Open in new window

SOLUTION
Avatar of CEHJ
CEHJ
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial