Improved Interace for creating Contracts

Improved Interace for creating Contracts
Added Person to Type and getAll function.
Added functions to print a List of Estates and Persons.
This commit is contained in:
Togepy95 2017-04-20 16:46:38 +02:00
parent e75ebc9337
commit 797742c0dc
7 changed files with 115 additions and 26 deletions

View File

@ -116,20 +116,8 @@ public class Main {
for (Object o : contracts) { for (Object o : contracts) {
Contract contract = (Contract) o; Contract contract = (Contract) o;
if(contract instanceof TenancyContract){ listContracts.addEntry("Contract No: " + contract.getContractNo() + " Place: "+contract.getPlace()
TenancyContract tenContract = (TenancyContract) contract; + "Date: "+contract.getDate(),contract.getContractNo());
listContracts.addEntry("Contract No: " + tenContract.getContractNo() + " Place: "+tenContract.getPlace()
+ "Date: "+tenContract.getDate()+" Start Date: "+tenContract.getStartDate()
+" Duration: "+tenContract.getDuration()+" Additional Costs: "+tenContract.getAdditionalCost()
,tenContract.getContractNo());
}
else{
PurchaseContract purContract = (PurchaseContract) contract;
listContracts.addEntry("Contract No: " + purContract.getContractNo() + " Place: "+purContract.getPlace()
+ "Date: "+purContract.getDate()+" No of Installments: "+purContract.getNoOfInstallments()
+" Interest Rate: "+purContract.getInterestRate()
,purContract.getContractNo());
}
} }
listContracts.addEntry("Back to the Contract management menu", BACK); listContracts.addEntry("Back to the Contract management menu", BACK);
@ -149,11 +137,14 @@ public class Main {
private static void newContract() { private static void newContract() {
Contract contract = new Contract(); Contract contract = new Contract();
//choose Estate from List //choose Estate from List
Estate estate = new Estate(); printListOfEstates();
contract.setEstate(FormUtil.readInt("Estate"));
//choose Person from List //choose Person from List
printListOfPersons();
contract.setPerson(FormUtil.readInt("Person"));
contract.setPlace(FormUtil.readString("Place")); contract.setPlace(FormUtil.readString("Place"));
contract.setDate(FormUtil.readString("Date")); contract.setDate(FormUtil.readString("Date"));
if(estate instanceof Apartment){ if(_orm.isApartment(contract.getEstate())){
TenancyContract tenContract = new TenancyContract(contract); TenancyContract tenContract = new TenancyContract(contract);
tenContract.setStartDate(FormUtil.readString("Start Date")); tenContract.setStartDate(FormUtil.readString("Start Date"));
tenContract.setDuration(FormUtil.readInt("Duration")); tenContract.setDuration(FormUtil.readInt("Duration"));
@ -372,6 +363,35 @@ public class Main {
System.out.println("------------------"); System.out.println("------------------");
} }
/**
* Print a list of persons.
*/
private static void printListOfPersons() {
List<?> agents = _orm.getAll(Type.PERSON);
System.out.println("List of Persons");
System.out.println("------------------");
for (Object o : agents) {
Person person = (Person) o;
System.out.println("Name: " + person.getFirstName()+" "+person.getName() +", Address: " + person.getAddress());
}
System.out.println("------------------");
}
/**
* Print a list of estates.
*/
private static void printListOfEstates() {
List<?> agents = _orm.getAll(Type.ESTATE);
System.out.println("List of Estates");
System.out.println("------------------");
for (Object o : agents) {
Estate estate = (Estate) o;
System.out.println("ID: " + estate.getId() + ", Address: " + estate.getStreet()+" "+estate.getStreetNumber()+", "+estate.getCity());
}
System.out.println("------------------");
}
/** /**
* Print a list of agents. * Print a list of agents.
*/ */

View File

@ -9,7 +9,15 @@ public class Contract {
private String date; private String date;
private String place; private String place;
private int person; private int person;
private int estate;
public int getEstate() {
return estate;
}
public void setEstate(int estate) {
this.estate = estate;
}
public int getContractNo() { public int getContractNo() {
return contractNo; return contractNo;
} }

View File

@ -4,7 +4,15 @@ public class Person {
private String firstName; private String firstName;
private String name; private String name;
private String address; private String address;
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() { public String getFirstName() {
return firstName; return firstName;
} }

View File

@ -3,8 +3,6 @@ package de.dis2017.data;
public class PurchaseContract extends Contract { public class PurchaseContract extends Contract {
private int noOfInstallments; private int noOfInstallments;
private int interestRate; private int interestRate;
private int house;
public PurchaseContract(){ public PurchaseContract(){
super(); super();
@ -33,11 +31,11 @@ public class PurchaseContract extends Contract {
} }
public int getHouse() { public int getHouse() {
return house; return super.getEstate();
} }
public void setHouse(int house) { public void setHouse(int house) {
this.house = house; super.setEstate(house);
} }

View File

@ -6,8 +6,6 @@ public class TenancyContract extends Contract {
private String startDate; private String startDate;
private int duration; private int duration;
private int additionalCost; private int additionalCost;
private int apartment;
public TenancyContract(){ public TenancyContract(){
super(); super();
@ -44,11 +42,11 @@ public class TenancyContract extends Contract {
} }
public int getApartment() { public int getApartment() {
return apartment; return super.getEstate();
} }
public void setApartment(int apartment) { public void setApartment(int apartment) {
this.apartment = apartment; super.setEstate(apartment);
} }

View File

@ -1,9 +1,12 @@
package de.dis2017.data.db; package de.dis2017.data.db;
import de.dis2017.data.Apartment; import de.dis2017.data.Apartment;
import de.dis2017.data.Contract;
import de.dis2017.data.Estate; import de.dis2017.data.Estate;
import de.dis2017.data.EstateAgent; import de.dis2017.data.EstateAgent;
import de.dis2017.data.House; import de.dis2017.data.House;
import de.dis2017.data.Person;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.sql.*; import java.sql.*;
@ -56,7 +59,10 @@ public class ORM {
objects = processEstates(rs); objects = processEstates(rs);
break; break;
case CONTRACT: case CONTRACT:
objects = processEstates(rs); objects = processContracts(rs);
break;
case PERSON:
objects = processPersons(rs);
break; break;
} }
rs.close(); rs.close();
@ -68,6 +74,51 @@ public class ORM {
return objects; return objects;
} }
/**
* Process a select all query for contracts.
*
* @param rs the result set of such a query
* @return a list of estates
* @throws SQLException when an error occurs during the rs.next call
*/
private List<Contract> processContracts(ResultSet rs) throws SQLException {
List<Contract> contracts = new ArrayList<>();
while (rs.next()) {
Contract contract = new Contract();
contract.setContractNo(rs.getInt("CONTRACTNUMBER"));
contract.setDate(rs.getDate("DATE").toString());
contract.setPlace(rs.getString("PLACE"));
contracts.add(contract);
}
return contracts;
}
/**
* Process a select all query for persons.
*
* @param rs the result set of such a query
* @return a list of estates
* @throws SQLException when an error occurs during the rs.next call
*/
private List<Person> processPersons(ResultSet rs) throws SQLException {
List<Person> persons = new ArrayList<>();
while (rs.next()) {
Person person = new Person();
person.setId(rs.getInt("ID"));
person.setFirstName(rs.getString("FirstName"));
person.setFirstName(rs.getString("Name"));
person.setName(rs.getString("Address"));
persons.add(person);
}
return persons;
}
/** /**
* Process a select all query for estates. * Process a select all query for estates.
* *
@ -537,4 +588,9 @@ public class ORM {
e.printStackTrace(); e.printStackTrace();
} }
} }
public boolean isApartment(int estateID){
//TODO check in the DB if the Estate with the ID is an Apartment then return true. If it is a house return false.
return true;
}
} }

View File

@ -7,5 +7,6 @@ package de.dis2017.data.db;
public enum Type { public enum Type {
ESTATEAGENT, ESTATEAGENT,
ESTATE, ESTATE,
CONTRACT; CONTRACT,
PERSON;
} }