Solved

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

Posted on 2016-07-27
2
44 Views
Last Modified: 2016-07-30
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

0
Comment
Question by:SunnyX
2 Comments
 
LVL 86

Assisted Solution

by:CEHJ
CEHJ earned 50 total points
ID: 41731556
Since you're learning still, see
http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

This will show you how enum has no connection at all with your goal - but you need to know about them anyway
1
 
LVL 9

Accepted Solution

by:
Moussa Mokhtari earned 450 total points
ID: 41731669
I think the best way to do it is to create a class not enum
that class contains a method that when you call it from main it will add your employees for you .
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 
// ********** ************************************************************

	 class EmpoyeeDataBase {
	  
	ArrayList<Employee> empoyeeDataBase = new ArrayList<>();
	
	public void addEmployee(Employee emp){
		empoyeeDataBase.add(emp);
	}
	public void addDefaultList(){
	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 ArrayList<Employee> getDataBase(){
	  return empoyeeDataBase;
    }
	}
 
 

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

      EmpoyeeDataBase employeedb = new EmpoyeeDataBase();
      employeedb.addDefaultList();
     
        // 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(employeedb.getDataBase(), 3);
        
        
   
    }
}

Open in new window

1

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

I had a project requirement for a displaying a user workbench .This workbench would consist multiple data grids .In each grid the user will be able to see a large number of data. These data grids should allow the user to 1. Sort 2. Export the …
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now