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) {
Contract contract = (Contract) o;
if(contract instanceof TenancyContract){
TenancyContract tenContract = (TenancyContract) contract;
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("Contract No: " + contract.getContractNo() + " Place: "+contract.getPlace()
+ "Date: "+contract.getDate(),contract.getContractNo());
}
listContracts.addEntry("Back to the Contract management menu", BACK);
@ -149,11 +137,14 @@ public class Main {
private static void newContract() {
Contract contract = new Contract();
//choose Estate from List
Estate estate = new Estate();
printListOfEstates();
contract.setEstate(FormUtil.readInt("Estate"));
//choose Person from List
printListOfPersons();
contract.setPerson(FormUtil.readInt("Person"));
contract.setPlace(FormUtil.readString("Place"));
contract.setDate(FormUtil.readString("Date"));
if(estate instanceof Apartment){
if(_orm.isApartment(contract.getEstate())){
TenancyContract tenContract = new TenancyContract(contract);
tenContract.setStartDate(FormUtil.readString("Start Date"));
tenContract.setDuration(FormUtil.readInt("Duration"));
@ -372,6 +363,35 @@ public class Main {
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.
*/

View File

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

View File

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

View File

@ -3,8 +3,6 @@ package de.dis2017.data;
public class PurchaseContract extends Contract {
private int noOfInstallments;
private int interestRate;
private int house;
public PurchaseContract(){
super();
@ -33,11 +31,11 @@ public class PurchaseContract extends Contract {
}
public int getHouse() {
return house;
return super.getEstate();
}
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 int duration;
private int additionalCost;
private int apartment;
public TenancyContract(){
super();
@ -44,11 +42,11 @@ public class TenancyContract extends Contract {
}
public int getApartment() {
return apartment;
return super.getEstate();
}
public void setApartment(int apartment) {
this.apartment = apartment;
super.setEstate(apartment);
}

View File

@ -1,9 +1,12 @@
package de.dis2017.data.db;
import de.dis2017.data.Apartment;
import de.dis2017.data.Contract;
import de.dis2017.data.Estate;
import de.dis2017.data.EstateAgent;
import de.dis2017.data.House;
import de.dis2017.data.Person;
import org.jetbrains.annotations.Nullable;
import java.sql.*;
@ -56,7 +59,10 @@ public class ORM {
objects = processEstates(rs);
break;
case CONTRACT:
objects = processEstates(rs);
objects = processContracts(rs);
break;
case PERSON:
objects = processPersons(rs);
break;
}
rs.close();
@ -68,6 +74,51 @@ public class ORM {
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.
*
@ -537,4 +588,9 @@ public class ORM {
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 {
ESTATEAGENT,
ESTATE,
CONTRACT;
CONTRACT,
PERSON;
}