Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fixed resource leak #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 77 additions & 69 deletions src/main/java/client/FamilyNetworkClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,76 +25,80 @@ public static void main(String[] args) throws IOException {
Guice.createInjector(new FamilyModule());
loader.loadFamily(family);

Scanner scn = new Scanner(System.in);
System.out.println("Select option to Display: ");
System.out.println("1. Family Tree\n2. Shortest Relation Chain\n3. Members from Generation Level\n" +
"4. Family Members in Ascending order of Age\n5. Family Members in Descending order of Age\n" +
"6. Male Family Members\n7. Female Family Members\n8. Aggregate Relation\n9. Persons by Relation\n" +
"10.Persons Related to someone with Relation\n11.Exit");
switch (scn.nextInt()) {
case 1:
displayFamilyTree();
break;
case 2:
displayShortestRelationChain();
break;
case 3:
displayAllMembersFromGenerationLevel();
break;
case 4:
displayFamilyInAscendingOrderOfAge();
break;
case 5:
displayFamilyInDescendingOrderOfAge();
break;
case 6:
displayAllMaleFamilyMembers();
break;
case 7:
displayAllFeMaleFamilyMembers();
break;
case 8:
displayAggregateRelation();
break;
case 9:
displayPersonsByRelation();
break;
case 10:
displayPersonsRelatedWithRelation();
break;
default:
return;
try(Scanner scn = new Scanner(System.in)) {
System.out.println("Select option to Display: ");
System.out.println("1. Family Tree\n2. Shortest Relation Chain\n3. Members from Generation Level\n" +
"4. Family Members in Ascending order of Age\n5. Family Members in Descending order of Age\n" +
"6. Male Family Members\n7. Female Family Members\n8. Aggregate Relation\n9. Persons by Relation\n" +
"10.Persons Related to someone with Relation\n11.Exit");
switch (scn.nextInt()) {
case 1:
displayFamilyTree();
break;
case 2:
displayShortestRelationChain();
break;
case 3:
displayAllMembersFromGenerationLevel();
break;
case 4:
displayFamilyInAscendingOrderOfAge();
break;
case 5:
displayFamilyInDescendingOrderOfAge();
break;
case 6:
displayAllMaleFamilyMembers();
break;
case 7:
displayAllFeMaleFamilyMembers();
break;
case 8:
displayAggregateRelation();
break;
case 9:
displayPersonsByRelation();
break;
case 10:
displayPersonsRelatedWithRelation();
break;
default:
return;
}
}
main(null);
}

private static void displayPersonsRelatedWithRelation() {
Scanner scn = new Scanner(System.in);
System.out.println("Enter Relation RelationLevel: ");
String relation = scn.next();
int relationLevel = scn.nextInt();
printer.printPersonsRelatedWithRelation(relation, relationLevel, family);
try(Scanner scn = new Scanner(System.in)) {
String relation = scn.next();
int relationLevel = scn.nextInt();
printer.printPersonsRelatedWithRelation(relation, relationLevel, family);
}
pause();
}

private static void displayPersonsByRelation() {
printer.printAllPersonsInFamily(family);
Scanner scn = new Scanner(System.in);
System.out.println("Enter Id Relation RelationLevel: ");
String pId = scn.next();
String relation = scn.next();
int relationLevel = scn.nextInt();
printer.printPersonsByRelation(pId, relation, relationLevel, family);
try (Scanner scn = new Scanner(System.in)) {
String pId = scn.next();
String relation = scn.next();
int relationLevel = scn.nextInt();
printer.printPersonsByRelation(pId, relation, relationLevel, family);
}
pause();
}

private static void displayAggregateRelation() {
printer.printAllPersonsInFamily(family);
Scanner scn = new Scanner(System.in);
System.out.println("Enter Ids of Persons to print Aggregate relation between them: ");
String p1Id = scn.next();
String p2Id = scn.next();
printer.printAggregateRelation(p1Id, p2Id, family);
try (Scanner scn = new Scanner(System.in)) {
String p1Id = scn.next();
String p2Id = scn.next();
printer.printAggregateRelation(p1Id, p2Id, family);
}
pause();
}

Expand Down Expand Up @@ -124,41 +128,45 @@ private static void displayFamilyInAscendingOrderOfAge() {

private static void displayAllMembersFromGenerationLevel() {
printer.printAllPersonsInFamily(family);
Scanner scn = new Scanner(System.in);
System.out.println("Enter Id of Person and Generation Level to Print all members above/below that Generation:");
String pId = scn.next();
int generationLevel = scn.nextInt();
printer.printAllMembersFromGenerationLevel(pId, generationLevel, family);
try (Scanner scn = new Scanner(System.in)) {
String pId = scn.next();
int generationLevel = scn.nextInt();
printer.printAllMembersFromGenerationLevel(pId, generationLevel, family);
}
pause();
}

private static void displayShortestRelationChain() {
printer.printAllPersonsInFamily(family);
Scanner scn = new Scanner(System.in);
System.out.println("Enter Ids of Persons to check to Print Relation Chain: ");
String p1Id = scn.next();
String p2Id = scn.next();
printer.printShortestRelationChain(p1Id, p2Id, family);
try (Scanner scn = new Scanner(System.in)) {
String p1Id = scn.next();
String p2Id = scn.next();
printer.printShortestRelationChain(p1Id, p2Id, family);
}
pause();
}

private static void displayFamilyTree() {
printer.printAllPersonsInFamily(family);
Scanner scn = new Scanner(System.in);
System.out.println("Choose an Id to Print Family tree: ");
String pId = scn.next();
printer.printFamilyTree(pId, family);
try (Scanner scn = new Scanner(System.in)) {
String pId = scn.next();
printer.printFamilyTree(pId, family);
}
pause();
}

private static void pause() {
System.out.println("Move On? :(y/n)");
Scanner scn = new Scanner(System.in);
String inp = scn.next();
switch (inp) {
case "n":
case "N":
pause();
try (Scanner scn = new Scanner(System.in)) {
String inp = scn.next();
switch (inp) {
case "n":
case "N":
pause();
}
}
}
}