Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Problem03. Openning - Java Advanced Retake Exam - 16 December 2020
- package bakery;
- public class Main {
- public static void main(String[] args) {
- //Initialize the repository
- Bakery bakery = new Bakery("Barny", 10);
- //Initialize entity
- Employee employee = new Employee("Stephen", 40, "Bulgaria");
- //Print Employee
- System.out.println(employee); //Employee: Stephen, 40 (Bulgaria)
- //Add Employee
- bakery.add(employee);
- //Remove Employee
- System.out.println(bakery.remove("Employee name")); //false
- Employee secondEmployee = new Employee("Mark", 34, "UK");
- //Add Employee
- bakery.add(secondEmployee);
- Employee oldestEmployee = bakery.getOldestEmployee(); // Employee with name Stephen
- Employee employeeStephen = bakery.getEmployee("Stephen"); // Employee with name Stephen
- System.out.println(oldestEmployee); //Employee: Stephen, 40 (Bulgaria)
- System.out.println(employeeStephen); //Employee: Stephen, 40 (Bulgaria)
- System.out.println(bakery.getCount()); //2
- System.out.println(bakery.report());
- //Employees working at Bakery Barny:
- //Employee: Stephen, 40 (Bulgaria)
- //Employee: Mark, 34 (UK)
- }
- }
- //----------------------------------------------------------------------------
- package bakery;
- public class Employee {
- private String name;
- private int age;
- private String country;
- public Employee(String name, int age, String country) {
- this.name = name;
- this.age = age;
- this.country = country;
- }
- public String getName() {
- return name;
- }
- public int getAge() {
- return age;
- }
- @Override
- public String toString() {
- return String.format("Employee: %s, %d (%s)", name, age, country);// "Employee: {name}, {age} ({country})"
- }
- }
- //----------------------------------------------------------------------------
- package bakery;
- import java.util.ArrayList;
- import java.util.List;
- public class Bakery {
- private List<Employee> employees;
- private int capacity;
- private String name;
- public Bakery(String name,int capacity) {
- this.capacity = capacity;
- this.employees = new ArrayList<>();
- }
- public void add(Employee employee) {
- if (this.employees.size() < this.capacity) {
- this.employees.add(employee);
- }
- }
- public boolean remove(String name) {
- int index = findEmployeeIndex(name);
- if (index != -1) {
- employees.remove(index);
- return true;
- }
- return false;
- }
- public Employee getEmployee(String name) {
- if (employees.contains(name)) {
- return employees.get(findEmployeeIndex(name));
- }
- else {return null;}
- }
- public Employee getOldestEmployee() {
- String nameOfOldestEmployee = "";
- int ageOfOldestEmployee = 0;
- Employee oldestEmployee = null;
- for (int i = 0;i < employees.size() ;i++) {
- if (employees.get(i).getAge() > ageOfOldestEmployee )
- {
- oldestEmployee = employees.get(i);
- }
- }
- return oldestEmployee;
- }
- private int findEmployeeIndex(String name) {
- for (int i = 0; i < this.employees.size(); i++) {
- if (this.employees.get(i).getName().equals(name)) {
- return i;
- }
- }
- return -1;
- }
- public int getCount() {
- return this.employees.size();
- }
- public String report() {
- StringBuilder builder = new StringBuilder("Employees working at Bakery " + name +":" + System.lineSeparator());
- for (Employee employee : employees) {
- builder.append(employee.getName().toString());
- builder.append(System.lineSeparator());
- }
- builder.append(System.lineSeparator());
- return builder.toString().trim();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement