diff --git a/.gitignore b/.gitignore index 7b4d599..14bd998 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,5 @@ hs_err_pid* replay_pid* **/bin/ +.metadata/ .old/ diff --git a/.metadata/.lock b/.metadata/.lock deleted file mode 100644 index e69de29..0000000 diff --git a/.metadata/.mylyn/.taskListIndex/segments_1 b/.metadata/.mylyn/.taskListIndex/segments_1 deleted file mode 100644 index 114d2af..0000000 Binary files a/.metadata/.mylyn/.taskListIndex/segments_1 and /dev/null differ diff --git a/.metadata/.mylyn/.taskListIndex/write.lock b/.metadata/.mylyn/.taskListIndex/write.lock deleted file mode 100644 index e69de29..0000000 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/17/80137ea4d59b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/17/80137ea4d59b001f1f5be468e8057a65 deleted file mode 100644 index bc358ee..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/17/80137ea4d59b001f1f5be468e8057a65 +++ /dev/null @@ -1,209 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? This would be better implemented as an - // abstract class, but in keeping with the spirit of the assignment, it - // shall reside in the interface. - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/1c/e0f99716d69b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/1c/e0f99716d69b001f1f5be468e8057a65 deleted file mode 100644 index ed4f680..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/1c/e0f99716d69b001f1f5be468e8057a65 +++ /dev/null @@ -1,223 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); - - // Calculate the total age in human years of all humans and pets. - int totalHumanAge(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; - - public int totalHumanAge() { return 0; } -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } - - public int totalHumanAge() { - return this.first.totalAge() + this.rest.totalHumanAge(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } - - // Sum of age and pet's age (in human years). - int totalAge() { - return this.age + this.pet.humanAge(); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? This would be better implemented as an - // abstract class, but in keeping with the spirit of the assignment, it - // shall reside in the interface. - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/33/c0418853d69b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/33/c0418853d69b001f1f5be468e8057a65 deleted file mode 100644 index c5d88bf..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/33/c0418853d69b001f1f5be468e8057a65 +++ /dev/null @@ -1,227 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } - - boolean testTotalAge(Tester t) { - return t.checkExpect(horb.totalAge(), 408 + 9); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); - - // Calculate the total age in human years of all humans and pets. - int totalHumanAge(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; - - public int totalHumanAge() { return 0; } -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } - - public int totalHumanAge() { - return this.first.totalAge() + this.rest.totalHumanAge(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } - - // Sum of age and pet's age (in human years). - int totalAge() { - return this.age + this.pet.humanAge(); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? This would be better implemented as an - // abstract class, but in keeping with the spirit of the assignment, it - // shall reside in the interface. - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/33/f08fc40ad89b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/33/f08fc40ad89b001f1f5be468e8057a65 deleted file mode 100644 index 8368765..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/33/f08fc40ad89b001f1f5be468e8057a65 +++ /dev/null @@ -1,228 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } - - boolean testTotalHumanAge(Tester t) { - return t.checkExpect(unpopulated.totalHumanAge(), 0) - && t.checkExpect(onlyHorb.totalHumanAge(), hekOlder.humanAge() + horb.age); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); - - // Calculate the total age in human years of all humans and pets. - int totalHumanAge(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; - - public int totalHumanAge() { return 0; } -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } - - public int totalHumanAge() { - return this.first.totalAge() + this.rest.totalHumanAge(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } - - // Sum of age and pet's age (in human years). - int totalAge() { - return this.age + this.pet.humanAge(); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? This would be better implemented as an - // abstract class, but in keeping with the spirit of the assignment, it - // shall reside in the interface. - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/3b/7066fe31d59b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/3b/7066fe31d59b001f1f5be468e8057a65 deleted file mode 100644 index 5824a33..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/3b/7066fe31d59b001f1f5be468e8057a65 +++ /dev/null @@ -1,248 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPetGetName(Tester t) { - return t.checkExpect(hek.getName(), new YesString("Hek")) - && t.checkExpect(unpet.getName(), new NoString()) - && t.checkExpect(foot.getName(), new YesString("Foot")); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.hasPet() && s.equals(this.pet.getName().unwrap()); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Return the name of the pet (maybe). - IMaybeString getName(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public IMaybeString getName() { return new NoString(); } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} - -// Maybe a string. -interface IMaybeString { - boolean isString(); - String unwrap(); -} - -// No string. -class NoString implements IMaybeString { - public boolean isString() { return false; } - - // This is an exception and should cause the program to crash, but I don't know how to do that cleanly. - public String unwrap() { int i = 0/0; return "what have you done 😔"; }; -} - -// Yes string. -class YesString implements IMaybeString { - String s; - - YesString(String s) { this.s = s; } - - public boolean isString() { return true; } - public String unwrap() { return this.s; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/64/a028da77d59b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/64/a028da77d59b001f1f5be468e8057a65 deleted file mode 100644 index 7a716aa..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/64/a028da77d59b001f1f5be468e8057a65 +++ /dev/null @@ -1,208 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - // Does the pet have the given name? This would be better implemented as an - // abstract class, but in keeping with the spirit of the assignment, it - // shall reside in the interface. - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/6f/40b1b77cd49b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/6f/40b1b77cd49b001f1f5be468e8057a65 deleted file mode 100644 index 1d73a1b..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/6f/40b1b77cd49b001f1f5be468e8057a65 +++ /dev/null @@ -1,5 +0,0 @@ -package delegation; - -public class Main { - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/87/400c2888d59b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/87/400c2888d59b001f1f5be468e8057a65 deleted file mode 100644 index fd0b0f9..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/87/400c2888d59b001f1f5be468e8057a65 +++ /dev/null @@ -1,212 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? This would be better implemented as an - // abstract class, but in keeping with the spirit of the assignment, it - // shall reside in the interface. - boolean hasName(String name); - - // Calculate the age in human years. - int humanAge(); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/8f/707b66e6d59b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/8f/707b66e6d59b001f1f5be468e8057a65 deleted file mode 100644 index 2db6527..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/8f/707b66e6d59b001f1f5be468e8057a65 +++ /dev/null @@ -1,218 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); - - // Calculate the total age in human years of all humans and pets. - int totalHumanAge(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; - - public int totalHumanAge() { return 0; } -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } - - public int totalHumanAge() { - return this.first.totalAge() + this.rest.totalHumanAge(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? This would be better implemented as an - // abstract class, but in keeping with the spirit of the assignment, it - // shall reside in the interface. - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/92/e0c0ef43d59b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/92/e0c0ef43d59b001f1f5be468e8057a65 deleted file mode 100644 index 734838e..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/92/e0c0ef43d59b001f1f5be468e8057a65 +++ /dev/null @@ -1,239 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - // Does the pet have the given name? - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public IMaybeString getName() { return new NoString(); } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} - -// Maybe a string. -interface IMaybeString { - boolean isString(); - String unwrap(); -} - -// No string. -class NoString implements IMaybeString { - public boolean isString() { return false; } - - // This is an exception and should cause the program to crash, but I don't know how to do that cleanly. - public String unwrap() { int i = 0/0; return "what have you done 😔"; }; -} - -// Yes string. -class YesString implements IMaybeString { - String s; - - YesString(String s) { this.s = s; } - - public boolean isString() { return true; } - public String unwrap() { return this.s; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/94/00c803d1d59b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/94/00c803d1d59b001f1f5be468e8057a65 deleted file mode 100644 index 40c123c..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/94/00c803d1d59b001f1f5be468e8057a65 +++ /dev/null @@ -1,212 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); - - // Calculate the total age in human years of all humans and pets. - int totalHumanAge(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? This would be better implemented as an - // abstract class, but in keeping with the spirit of the assignment, it - // shall reside in the interface. - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/94/40183885d59b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/94/40183885d59b001f1f5be468e8057a65 deleted file mode 100644 index bc358ee..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/94/40183885d59b001f1f5be468e8057a65 +++ /dev/null @@ -1,209 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? This would be better implemented as an - // abstract class, but in keeping with the spirit of the assignment, it - // shall reside in the interface. - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/96/504b7b3bd59b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/96/504b7b3bd59b001f1f5be468e8057a65 deleted file mode 100644 index f1fba1e..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/96/504b7b3bd59b001f1f5be468e8057a65 +++ /dev/null @@ -1,245 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPetGetName(Tester t) { - return t.checkExpect(hek.getName(), new YesString("Hek")) - && t.checkExpect(unpet.getName(), new NoString()) - && t.checkExpect(foot.getName(), new YesString("Foot")); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - // Does the pet have the given name? - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public IMaybeString getName() { return new NoString(); } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} - -// Maybe a string. -interface IMaybeString { - boolean isString(); - String unwrap(); -} - -// No string. -class NoString implements IMaybeString { - public boolean isString() { return false; } - - // This is an exception and should cause the program to crash, but I don't know how to do that cleanly. - public String unwrap() { int i = 0/0; return "what have you done 😔"; }; -} - -// Yes string. -class YesString implements IMaybeString { - String s; - - YesString(String s) { this.s = s; } - - public boolean isString() { return true; } - public String unwrap() { return this.s; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/a6/b0e8ff69079b001f1446f1441f37a845 b/.metadata/.plugins/org.eclipse.core.resources/.history/a6/b0e8ff69079b001f1446f1441f37a845 deleted file mode 100644 index e69de29..0000000 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/b4/002fadf3d49b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/b4/002fadf3d49b001f1f5be468e8057a65 deleted file mode 100644 index 8cf455e..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/b4/002fadf3d49b001f1f5be468e8057a65 +++ /dev/null @@ -1,247 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPetGetName(Tester t) { - return t.checkExpect(hek.getName(), new YesString("Hek")) - && t.checkExpect(unpet.getName(), new NoString()) - && t.checkExpect(foot.getName(), new YesString("Foot")); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.hasPet() && s.equals(this.pet.getName().unwrap()); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.hasPet() && this.name.equals(this.pet.getName().unwrap()); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Return the name of the pet (maybe). - IMaybeString getName(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public IMaybeString getName() { return new NoString(); } - public int humanAge() { return 0; } -} - -// Maybe a string. -interface IMaybeString { - boolean isString(); - String unwrap(); -} - -// No string. -class NoString implements IMaybeString { - public boolean isString() { return false; } - - // This is an exception and should cause the program to crash, but I don't know how to do that cleanly. - public String unwrap() { int i = 0/0; return "what have you done 😔"; }; -} - -// Yes string. -class YesString implements IMaybeString { - String s; - - YesString(String s) { this.s = s; } - - public boolean isString() { return true; } - public String unwrap() { return this.s; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/bd/702a4758079b001f1446f1441f37a845 b/.metadata/.plugins/org.eclipse.core.resources/.history/bd/702a4758079b001f1446f1441f37a845 deleted file mode 100644 index cc4eaa5..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/bd/702a4758079b001f1446f1441f37a845 +++ /dev/null @@ -1,7 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 -org.eclipse.jdt.core.compiler.compliance=21 -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning -org.eclipse.jdt.core.compiler.release=enabled -org.eclipse.jdt.core.compiler.source=21 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/bd/e0a49fe2d49b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/bd/e0a49fe2d49b001f1f5be468e8057a65 deleted file mode 100644 index 6a9e77b..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/bd/e0a49fe2d49b001f1f5be468e8057a65 +++ /dev/null @@ -1,243 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPetGetName(Tester t) { - return t.checkExpect(hek.getName(), new YesString("Hek")) - && t.checkExpect(unpet.getName(), new NoString()) - && t.checkExpect(foot.getName(), new YesString("Foot")); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.hasPet() && s.equals(this.pet.getName().unwrap()); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.hasPet() && this.name.equals(this.pet.getName().unwrap()); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Return the name of the pet (maybe). - IMaybeString getName(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 7; - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public IMaybeString getName() { return new NoString(); } - public int humanAge() { return 0; } -} - -// Maybe a string. -interface IMaybeString { - boolean isString(); - String unwrap(); -} - -// No string. -class NoString implements IMaybeString { - public boolean isString() { return false; } - - // This is an exception and should cause the program to crash, but I don't know how to do that cleanly. - public String unwrap() { int i = 0/0; return "what have you done 😔"; }; -} - -// Yes string. -class YesString implements IMaybeString { - String s; - - YesString(String s) { this.s = s; } - - public boolean isString() { return true; } - public String unwrap() { return this.s; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c0/70ad954ad49b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/c0/70ad954ad49b001f1f5be468e8057a65 deleted file mode 100644 index cc4eaa5..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/c0/70ad954ad49b001f1f5be468e8057a65 +++ /dev/null @@ -1,7 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 -org.eclipse.jdt.core.compiler.compliance=21 -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning -org.eclipse.jdt.core.compiler.release=enabled -org.eclipse.jdt.core.compiler.source=21 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c2/403f2215d59b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/c2/403f2215d59b001f1f5be468e8057a65 deleted file mode 100644 index d23e884..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/c2/403f2215d59b001f1f5be468e8057a65 +++ /dev/null @@ -1,248 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPetGetName(Tester t) { - return t.checkExpect(hek.getName(), new YesString("Hek")) - && t.checkExpect(unpet.getName(), new NoString()) - && t.checkExpect(foot.getName(), new YesString("Foot")); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.hasPet() && s.equals(this.pet.getName().unwrap()); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.hasPet() && this.name.equals(this.pet.getName().unwrap()); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Return the name of the pet (maybe). - IMaybeString getName(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public IMaybeString getName() { return new NoString(); } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} - -// Maybe a string. -interface IMaybeString { - boolean isString(); - String unwrap(); -} - -// No string. -class NoString implements IMaybeString { - public boolean isString() { return false; } - - // This is an exception and should cause the program to crash, but I don't know how to do that cleanly. - public String unwrap() { int i = 0/0; return "what have you done 😔"; }; -} - -// Yes string. -class YesString implements IMaybeString { - String s; - - YesString(String s) { this.s = s; } - - public boolean isString() { return true; } - public String unwrap() { return this.s; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c7/500f458b079b001f1446f1441f37a845 b/.metadata/.plugins/org.eclipse.core.resources/.history/c7/500f458b079b001f1446f1441f37a845 deleted file mode 100644 index 43728c1..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/c7/500f458b079b001f1446f1441f37a845 +++ /dev/null @@ -1,5 +0,0 @@ -package mastermind; - -public class Main { - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/cd/d0b04d52d49b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/cd/d0b04d52d49b001f1f5be468e8057a65 deleted file mode 100644 index e69de29..0000000 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d8/109cdfc6d49b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/d8/109cdfc6d49b001f1f5be468e8057a65 deleted file mode 100644 index b60f682..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/d8/109cdfc6d49b001f1f5be468e8057a65 +++ /dev/null @@ -1,236 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPetGetName(Tester t) { - return t.checkExpect(hek.getName(), new YesString("Hek")) - && t.checkExpect(unpet.getName(), new NoString()) - && t.checkExpect(foot.getName(), new YesString("Foot")); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.hasPet() && s.equals(this.pet.getName().unwrap()); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.hasPet() && this.name.equals(this.pet.getName().unwrap()); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Return the name of the pet (maybe). - IMaybeString getName(); - // Age of pet in human years. - int humanAge(); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 6; -} -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 7; - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public IMaybeString getName() { return new NoString(); } - public int humanAge() { return 0; } -} - -// Maybe a string. -interface IMaybeString { - boolean isString(); - String unwrap(); -} - -// No string. -class NoString implements IMaybeString { - public boolean isString() { return false; } - - // This is an exception and should cause the program to crash, but I don't know how to do that cleanly. - public String unwrap() { int i = 0/0; return "what have you done 😔"; }; -} - -// Yes string. -class YesString implements IMaybeString { - String s; - - YesString(String s) { this.s = s; } - - public boolean isString() { return true; } - public String unwrap() { return this.s; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/db/a0b93326d89b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/db/a0b93326d89b001f1f5be468e8057a65 deleted file mode 100644 index 821c228..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/db/a0b93326d89b001f1f5be468e8057a65 +++ /dev/null @@ -1,228 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } - - boolean testTotalHumanAge(Tester t) { - return t.checkExpect(unpopulated.totalHumanAge(), 0) - && t.checkExpect(onlyHorb.totalHumanAge(), 2457); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); - - // Calculate the total age in human years of all humans and pets. - int totalHumanAge(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; - - public int totalHumanAge() { return 0; } -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } - - public int totalHumanAge() { - return this.first.totalAge() + this.rest.totalHumanAge(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } - - // Sum of age and pet's age (in human years). - int totalAge() { - return this.age + this.pet.humanAge(); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? This would be better implemented as an - // abstract class, but in keeping with the spirit of the assignment, it - // shall reside in the interface. - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e0/f0970e48d59b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/e0/f0970e48d59b001f1f5be468e8057a65 deleted file mode 100644 index 37c6df1..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/e0/f0970e48d59b001f1f5be468e8057a65 +++ /dev/null @@ -1,215 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - // Does the pet have the given name? - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public IMaybeString getName() { return new NoString(); } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ee/70d00174d59b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/ee/70d00174d59b001f1f5be468e8057a65 deleted file mode 100644 index b9725de..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/ee/70d00174d59b001f1f5be468e8057a65 +++ /dev/null @@ -1,206 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.pet.hasName(s); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.pet.hasName(this.name); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Age of pet in human years. - int humanAge(); - // Does the pet have the given name? - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 6; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public int humanAge() { - return this.age * 7; - } - - public boolean hasName(String name) { - return name.equals(this.name); - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public int humanAge() { return 0; } - public boolean hasName(String name) { return false; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/f2/60eb3fd6d49b001f1f5be468e8057a65 b/.metadata/.plugins/org.eclipse.core.resources/.history/f2/60eb3fd6d49b001f1f5be468e8057a65 deleted file mode 100644 index e2f7ead..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/f2/60eb3fd6d49b001f1f5be468e8057a65 +++ /dev/null @@ -1,239 +0,0 @@ -package delegation; - -import tester.Tester; - -class Examples { - IPet foot = new Dog("Foot", 44); - IPet footOlder = new Dog("Foot", 45); - IPet hek = new Cat("Hek", 408); - IPet hekOlder = new Cat("Hek", 409); - IPet unpet = new NoPet(); - IPet stephenDog = new Dog("Stephen", 93); - - Person horb = new Person("Horb", hek, 9); - Person horbOlder = new Person("Horb", hekOlder, 10); - Person minge = new Person("Minge", unpet, 3); - Person mingeOlder = new Person("Minge", unpet, 4); - Person wrist = new Person("Wrist", foot, 60); - Person wristOlder = new Person("Wrist", footOlder, 61); - Person stephenPerson = new Person("Stephen", stephenDog, 88); - - ILoPerson unpopulated = new MtLoPerson(); - ILoPerson onlyHorb = new ConsLoPerson(horb, unpopulated); - ILoPerson mingeAndHorb = new ConsLoPerson(minge, onlyHorb); - ILoPerson mingeAndHorbOneYearLater = - new ConsLoPerson(mingeOlder, - new ConsLoPerson(horbOlder, unpopulated)); - ILoPerson mingeAndStephen = new ConsLoPerson(minge, new ConsLoPerson(stephenPerson, unpopulated)); - - boolean testPetOlder(Tester t) { - return t.checkExpect(foot.older(), footOlder) - && t.checkExpect(hek.older(), hekOlder) - && t.checkExpect(unpet, unpet); - } - - boolean testPersonOlder(Tester t) { - return t.checkExpect(horb.older(), horbOlder) - && t.checkExpect(minge.older(), mingeOlder) - && t.checkExpect(wrist.older(), wristOlder); - } - - boolean testPetGetName(Tester t) { - return t.checkExpect(hek.getName(), new YesString("Hek")) - && t.checkExpect(unpet.getName(), new NoString()) - && t.checkExpect(foot.getName(), new YesString("Foot")); - } - - boolean testPersonSamePetName(Tester t) { - return t.checkExpect(horb.samePetName("Hek"), true) - && t.checkExpect(horb.samePetName("Minkus"), false) - && t.checkExpect(minge.samePetName("8"), false); - } - - boolean testILoPersonOlder(Tester t) { - return t.checkExpect(unpopulated.older(), unpopulated) - && t.checkExpect(mingeAndHorb.older(), mingeAndHorbOneYearLater); - } - - boolean testPetHumanAge(Tester t) { - return t.checkExpect(hek.humanAge(), 2448) - && t.checkExpect(stephenDog.humanAge(), 651) - && t.checkExpect(unpet.humanAge(), 0); - } - - boolean testPersonPetHasSameName(Tester t) { - return t.checkExpect(wrist.petHasSameName(), false) && - t.checkExpect(minge.petHasSameName(), false) && - t.checkExpect(stephenPerson.petHasSameName(), true); - - } - - boolean testAnyNarcissists(Tester t) { - return t.checkExpect(mingeAndHorbOneYearLater.anyNarcissists(), false) && - t.checkExpect(mingeAndStephen.anyNarcissists(), true); - } -} - -// A list of people. -interface ILoPerson { - // Increase each member person's and their pet's ages by one. - ILoPerson older(); - - // Does anyone share a name with their pet? - boolean anyNarcissists(); -} - -class MtLoPerson implements ILoPerson { - public ILoPerson older() { return this; }; - - public boolean anyNarcissists() { return false; }; -} - -class ConsLoPerson implements ILoPerson { - Person first; - ILoPerson rest; - - ConsLoPerson(Person first, ILoPerson rest) { - this.first = first; - this.rest = rest; - } - - public ILoPerson older() { - return new ConsLoPerson(this.first.older(), this.rest.older()); - } - - public boolean anyNarcissists() { - return this.first.petHasSameName() || this.rest.anyNarcissists(); - } -} - -//a pet owner -class Person { - String name; - IPet pet; - int age; // in years - - Person(String name, IPet pet, int age) { - this.name = name; - this.pet = pet; - this.age = age; - } - - // Increase the age of a person and their pet by one year. - Person older() { - return new Person(this.name, this.pet.older(), this.age + 1); - } - - // Do they have a pet (and not an unpet)? - boolean hasPet() { - return this.pet.isPet(); - } - - // Whether a person's pet's name's the same as the given string. - boolean samePetName(String s) { - return this.hasPet() && s.equals(this.pet.getName().unwrap()); - } - - // Return whether they've the same name their pet. - boolean petHasSameName() { - return this.hasPet() && this.name.equals(this.pet.getName().unwrap()); - } -} - -//a pet -interface IPet { - // Increase the age of a pet by one year. - IPet older(); - boolean isPet(); - // Return the name of the pet (maybe). - IMaybeString getName(); - // Age of pet in human years. - int humanAge(); - - // Does the pet have the given name? - boolean hasName(String name); -} - -//a pet cat -class Cat implements IPet { - String name; - int age; // in years - - Cat(String name, int age) { - this.name = name; - this.age = age; - } - - public Cat older() { - return new Cat(this.name, this.age + 1); - } - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 6; -} -} - -//a pet dog -class Dog implements IPet { - String name; - int age; // in years - - Dog(String name, int age) { - this.name = name; - this.age = age; - } - - - public Dog older() { - return new Dog(this.name, this.age + 1); - } - - - public boolean isPet() { return true; } - - public IMaybeString getName() { - return new YesString(this.name); - } - - public int humanAge() { - return this.age * 7; - } -} - -//no pet -class NoPet implements IPet { - public NoPet older() { return this; } - public boolean isPet() { return false; } - public IMaybeString getName() { return new NoString(); } - public int humanAge() { return 0; } -} - -// Maybe a string. -interface IMaybeString { - boolean isString(); - String unwrap(); -} - -// No string. -class NoString implements IMaybeString { - public boolean isString() { return false; } - - // This is an exception and should cause the program to crash, but I don't know how to do that cleanly. - public String unwrap() { int i = 0/0; return "what have you done 😔"; }; -} - -// Yes string. -class YesString implements IMaybeString { - String s; - - YesString(String s) { this.s = s; } - - public boolean isString() { return true; } - public String unwrap() { return this.s; } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location b/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location deleted file mode 100644 index 5eade1a..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/.indexes/af/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/.indexes/af/history.index deleted file mode 100644 index d6d5532..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/.indexes/af/history.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/.indexes/e4/28/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/.indexes/e4/28/history.index deleted file mode 100644 index 28a9ea5..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/.indexes/e4/28/history.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/.indexes/properties.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/.indexes/properties.index deleted file mode 100644 index 1e099f3..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/.indexes/properties.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/org.eclipse.egit.core/GitProjectData.properties b/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/org.eclipse.egit.core/GitProjectData.properties deleted file mode 100644 index 2e70d97..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/org.eclipse.egit.core/GitProjectData.properties +++ /dev/null @@ -1,3 +0,0 @@ -#GitProjectData -#Tue Nov 05 19:15:56 EST 2024 -.gitdir=../.git diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/org.eclipse.jdt.core/state.dat b/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/org.eclipse.jdt.core/state.dat deleted file mode 100644 index 4ab8ee4..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/delegation/org.eclipse.jdt.core/state.dat and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/.indexes/af/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/.indexes/af/history.index deleted file mode 100644 index 18eb271..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/.indexes/af/history.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/.indexes/e4/4c/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/.indexes/e4/4c/history.index deleted file mode 100644 index 525e38f..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/.indexes/e4/4c/history.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/.indexes/properties.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/.indexes/properties.index deleted file mode 100644 index 1e099f3..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/.indexes/properties.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/.markers b/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/.markers deleted file mode 100644 index af8bbbe..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/.markers and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/org.eclipse.egit.core/GitProjectData.properties b/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/org.eclipse.egit.core/GitProjectData.properties deleted file mode 100644 index 2369360..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/org.eclipse.egit.core/GitProjectData.properties +++ /dev/null @@ -1,3 +0,0 @@ -#GitProjectData -#Mon Nov 04 18:48:21 EST 2024 -.gitdir=../.git diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/org.eclipse.jdt.core/state.dat b/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/org.eclipse.jdt.core/state.dat deleted file mode 100644 index 293105c..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/mastermind/org.eclipse.jdt.core/state.dat and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version deleted file mode 100644 index 25cb955..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index deleted file mode 100644 index ce920a5..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version deleted file mode 100644 index 6b2aaa7..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/4.tree b/.metadata/.plugins/org.eclipse.core.resources/.root/4.tree deleted file mode 100644 index 1f809c7..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.root/4.tree and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources deleted file mode 100644 index 912be42..0000000 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/net.sourceforge.vrapper.eclipse.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/net.sourceforge.vrapper.eclipse.prefs deleted file mode 100644 index 67d10c2..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/net.sourceforge.vrapper.eclipse.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -vrapperEnabled=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 30841eb..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,3 +0,0 @@ -eclipse.preferences.version=1 -encoding=UTF-8 -version=1 diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs deleted file mode 100644 index a2e2ec3..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs +++ /dev/null @@ -1,3 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=\n\n -preferredTargets=default\:default| diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.e4.ui.css.swt.theme.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.e4.ui.css.swt.theme.prefs deleted file mode 100644 index 77840f2..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.e4.ui.css.swt.theme.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -themeid=org.eclipse.e4.ui.css.theme.e4_dark diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.e4.ui.workbench.renderers.swt.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.e4.ui.workbench.renderers.swt.prefs deleted file mode 100644 index f19f0b9..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.e4.ui.workbench.renderers.swt.prefs +++ /dev/null @@ -1,6 +0,0 @@ -HIDE_ICONS_FOR_VIEW_TABS=false -SHOW_FULL_TEXT_FOR_VIEW_TABS=false -USE_ROUND_TABS=false -eclipse.preferences.version=1 -enableMRU=true -themeEnabled=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.egit.core.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.egit.core.prefs deleted file mode 100644 index 8df2034..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.egit.core.prefs +++ /dev/null @@ -1,3 +0,0 @@ -GitRepositoriesView.GitDirectories=/home/jacob/School/CS3/.git\: -GitRepositoriesView.GitDirectories.relative=.git\: -eclipse.preferences.version=1 diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 357bee6..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,11 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.classpathVariable.JRE_LIB=/app/eclipse/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.linux.x86_64_21.0.4.v20240802-1551/jre/lib/jrt-fs.jar -org.eclipse.jdt.core.classpathVariable.JRE_SRC=/app/eclipse/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.linux.x86_64_21.0.4.v20240802-1551/jre/lib/src.zip -org.eclipse.jdt.core.classpathVariable.JRE_SRCROOT= -org.eclipse.jdt.core.classpathVariable.JUNIT_HOME=/app/eclipse/plugins/org.junit_4.13.2.v20230809-1000.jar -org.eclipse.jdt.core.classpathVariable.M2_REPO=/home/jacob/.m2/repository -org.eclipse.jdt.core.codeComplete.visibilityCheck=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 -org.eclipse.jdt.core.compiler.compliance=21 -org.eclipse.jdt.core.compiler.release=enabled -org.eclipse.jdt.core.compiler.source=21 diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.junit.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.junit.prefs deleted file mode 100644 index 31df02c..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.junit.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.junit.content_assist_favorite_static_members_migrated=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs deleted file mode 100644 index 33e9a2f..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.launching.PREF_VM_XML=\n\n \n \n \n\n diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 62a4f66..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,91 +0,0 @@ -content_assist_completion_replacement_background=200,200,0 -content_assist_completion_replacement_foreground=200,0,0 -content_assist_disabled_computers=org.eclipse.jdt.ui.textProposalCategory\u0000org.eclipse.jdt.ui.javaPostfixProposalCategory\u0000org.eclipse.jdt.ui.javaAllProposalCategory\u0000org.eclipse.jdt.ui.javaTypeProposalCategory\u0000org.eclipse.jdt.ui.javaNoTypeProposalCategory\u0000org.eclipse.jdt.ui.javaChainProposalCategory\u0000 -content_assist_lru_history= -content_assist_number_of_computers=15 -content_assist_parameters_background=52,57,61 -content_assist_parameters_foreground=238,238,238 -content_assist_proposals_background=52,57,61 -content_assist_proposals_foreground=238,238,238 -eclipse.preferences.version=1 -java_bracket=249,250,244 -java_comment_task_tag=154,140,124 -java_default=217,232,247 -java_doc_default=128,128,128 -java_doc_keyword=154,140,124 -java_doc_link=169,156,140 -java_doc_tag=30,120,155 -java_keyword=204,108,29 -java_keyword_bold=false -java_keyword_return=204,108,29 -java_keyword_return_bold=false -java_multi_line_comment=128,128,128 -java_operator=230,230,250 -java_single_line_comment=128,128,128 -java_string=23,198,163 -javadocElementsStyling.darkModeDefaultColors=true -matchingBracketsColor=249,250,244 -org.eclipse.jdt.ui.formatterprofiles.version=23 -overriddenByCSS=,content_assist_completion_replacement_background,content_assist_completion_replacement_foreground,content_assist_parameters_background,content_assist_parameters_foreground,content_assist_proposals_background,content_assist_proposals_foreground,java_bracket,java_comment_task_tag,java_default,java_doc_default,java_doc_keyword,java_doc_link,java_doc_tag,java_keyword,java_keyword_bold,java_keyword_return,java_keyword_return_bold,java_multi_line_comment,java_operator,java_single_line_comment,java_string,matchingBracketsColor,pf_coloring_argument,pf_coloring_assignment,pf_coloring_comment,pf_coloring_key,pf_coloring_value,semanticHighlighting.abstractClass.color,semanticHighlighting.abstractClass.enabled,semanticHighlighting.abstractMethodInvocation.color,semanticHighlighting.abstractMethodInvocation.enabled,semanticHighlighting.annotation.color,semanticHighlighting.annotation.enabled,semanticHighlighting.annotation.italic,semanticHighlighting.annotationElementReference.color,semanticHighlighting.annotationElementReference.enabled,semanticHighlighting.class.color,semanticHighlighting.class.enabled,semanticHighlighting.deprecatedMember.color,semanticHighlighting.deprecatedMember.enabled,semanticHighlighting.deprecatedMember.underline,semanticHighlighting.deprecatedMember.strikethrough,semanticHighlighting.enum.color,semanticHighlighting.enum.enabled,semanticHighlighting.enum.italic,semanticHighlighting.field.color,semanticHighlighting.field.enabled,semanticHighlighting.inheritedField.color,semanticHighlighting.inheritedMethodInvocation.color,semanticHighlighting.inheritedMethodInvocation.enabled,semanticHighlighting.interface.color,semanticHighlighting.interface.enabled,semanticHighlighting.localVariable.color,semanticHighlighting.localVariable.enabled,semanticHighlighting.localVariableDeclaration.color,semanticHighlighting.localVariableDeclaration.enabled,semanticHighlighting.localVariableDeclaration.bold,semanticHighlighting.method.color,semanticHighlighting.method.enabled,semanticHighlighting.methodDeclarationName.color,semanticHighlighting.methodDeclarationName.enabled,semanticHighlighting.methodDeclarationName.bold,semanticHighlighting.number.color,semanticHighlighting.number.enabled,semanticHighlighting.parameterVariable.color,semanticHighlighting.parameterVariable.enabled,semanticHighlighting.staticField.color,semanticHighlighting.staticField.enabled,semanticHighlighting.staticFinalField.color,semanticHighlighting.staticFinalField.enabled,semanticHighlighting.staticMethodInvocation.color,semanticHighlighting.staticMethodInvocation.enabled,semanticHighlighting.typeArgument.color,semanticHighlighting.typeArgument.enabled,semanticHighlighting.typeParameter.color,semanticHighlighting.typeParameter.enabled,semanticHighlighting.typeParameter.bold,semanticHighlighting.restrictedKeywords.color,semanticHighlighting.restrictedKeywords.bold,sourceHoverBackgroundColor,javadocElementsStyling.darkModeDefaultColors, -pf_coloring_argument=221,40,103 -pf_coloring_assignment=217,232,247 -pf_coloring_comment=128,128,128 -pf_coloring_key=217,232,247 -pf_coloring_value=23,198,163 -semanticHighlighting.abstractClass.color=62,171,230 -semanticHighlighting.abstractClass.enabled=true -semanticHighlighting.abstractMethodInvocation.color=128,246,167 -semanticHighlighting.abstractMethodInvocation.enabled=true -semanticHighlighting.annotation.color=160,160,160 -semanticHighlighting.annotation.enabled=true -semanticHighlighting.annotation.italic=true -semanticHighlighting.annotationElementReference.color=235,75,100 -semanticHighlighting.annotationElementReference.enabled=true -semanticHighlighting.class.color=18,144,195 -semanticHighlighting.class.enabled=true -semanticHighlighting.deprecatedMember.color=128,128,128 -semanticHighlighting.deprecatedMember.enabled=true -semanticHighlighting.deprecatedMember.strikethrough=true -semanticHighlighting.deprecatedMember.underline=false -semanticHighlighting.enum.color=204,129,186 -semanticHighlighting.enum.enabled=true -semanticHighlighting.enum.italic=true -semanticHighlighting.field.color=102,225,248 -semanticHighlighting.field.enabled=true -semanticHighlighting.inheritedField.color=143,143,191 -semanticHighlighting.inheritedMethodInvocation.color=205,246,104 -semanticHighlighting.inheritedMethodInvocation.enabled=true -semanticHighlighting.interface.color=128,242,246 -semanticHighlighting.interface.enabled=true -semanticHighlighting.localVariable.color=243,236,121 -semanticHighlighting.localVariable.enabled=true -semanticHighlighting.localVariableDeclaration.bold=false -semanticHighlighting.localVariableDeclaration.color=242,242,0 -semanticHighlighting.localVariableDeclaration.enabled=true -semanticHighlighting.method.color=167,236,33 -semanticHighlighting.method.enabled=true -semanticHighlighting.methodDeclarationName.bold=false -semanticHighlighting.methodDeclarationName.color=30,181,64 -semanticHighlighting.methodDeclarationName.enabled=true -semanticHighlighting.number.color=104,151,187 -semanticHighlighting.number.enabled=true -semanticHighlighting.parameterVariable.color=121,171,255 -semanticHighlighting.parameterVariable.enabled=true -semanticHighlighting.restrictedKeywords.bold=false -semanticHighlighting.restrictedKeywords.color=204,108,29 -semanticHighlighting.staticField.color=141,218,248 -semanticHighlighting.staticField.enabled=true -semanticHighlighting.staticFinalField.color=141,218,248 -semanticHighlighting.staticFinalField.enabled=true -semanticHighlighting.staticMethodInvocation.color=150,236,63 -semanticHighlighting.staticMethodInvocation.enabled=true -semanticHighlighting.typeArgument.color=177,102,218 -semanticHighlighting.typeArgument.enabled=true -semanticHighlighting.typeParameter.bold=false -semanticHighlighting.typeParameter.color=191,164,164 -semanticHighlighting.typeParameter.enabled=true -sourceHoverBackgroundColor=68,68,68 -spelling_locale_initialized=true -typefilter_migrated_2=true -useAnnotationsPrefPage=true -useQuickDiffPrefPage=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs deleted file mode 100644 index 67b1d96..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.m2e.discovery.pref.projects= diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs deleted file mode 100644 index 43e97e4..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -mylyn.attention.migrated=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.java.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.java.ui.prefs deleted file mode 100644 index 2a6fe50..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.java.ui.prefs +++ /dev/null @@ -1,3 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.mylyn.java.ui.run.count.3_10_0=1 -org.eclipse.mylyn.java.ui.run.count.3_1_0=1 diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs deleted file mode 100644 index 8d462a6..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.mylyn.monitor.activity.tracking.enabled.checked=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs deleted file mode 100644 index 2b60c21..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -migrated.task.repositories.secure.store=true -org.eclipse.mylyn.tasks.ui.filters.nonmatching=true -org.eclipse.mylyn.tasks.ui.filters.nonmatching.encouraged=true -org.eclipse.mylyn.tasks.ui.welcome.message=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs deleted file mode 100644 index cec65c4..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.search.defaultPerspective=org.eclipse.search.defaultPerspective.none diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs deleted file mode 100644 index 2e60d5f..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs +++ /dev/null @@ -1,4 +0,0 @@ -eclipse.preferences.version=1 -platformState=902606037612457 -quickStart=false -tipsAndTricks=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs deleted file mode 100644 index 62252c0..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs +++ /dev/null @@ -1,3 +0,0 @@ -CURRENT_THEME_ID=org.eclipse.ui.ide.systemDefault -eclipse.preferences.version=1 -showIntro=false diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs deleted file mode 100644 index c5ed378..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs +++ /dev/null @@ -1,67 +0,0 @@ -//org.eclipse.ui.commands/state/org.eclipse.ui.navigator.resources.nested.changeProjectPresentation/org.eclipse.ui.commands.radioState=false -PLUGINS_NOT_ACTIVATED_ON_STARTUP=;org.eclipse.m2e.discovery; -eclipse.preferences.version=1 -org.eclipse.ui.ide.systemDefault.CONFLICTING_COLOR=240,15,66 -org.eclipse.ui.ide.systemDefault.CONTENT_ASSIST_BACKGROUND_COLOR=52,57,61 -org.eclipse.ui.ide.systemDefault.CONTENT_ASSIST_FOREGROUND_COLOR=238,238,238 -org.eclipse.ui.ide.systemDefault.EDITION_COLOR=238,238,238 -org.eclipse.ui.ide.systemDefault.INCOMING_COLOR=31,179,235 -org.eclipse.ui.ide.systemDefault.OUTGOING_COLOR=238,238,238 -org.eclipse.ui.ide.systemDefault.RESOLVED_COLOR=108,210,17 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.CommitMessageCommentColor=128,128,128 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.DiffAddBackgroundColor=11,121,90 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.DiffAddForegroundColor=216,254,245 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.DiffHeadlineBackgroundColor=71,71,71 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.DiffHeadlineForegroundColor=242,242,242 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.DiffHunkBackgroundColor=53,97,113 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.DiffHunkForegroundColor=233,242,254 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.DiffRemoveBackgroundColor=117,2,36 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.DiffRemoveForegroundColor=255,232,237 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.IgnoredResourceBackgroundColor=47,47,47 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.IgnoredResourceForegroundColor=120,120,120 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.UncommittedChangeBackgroundColor=47,47,47 -org.eclipse.ui.ide.systemDefault.org.eclipse.egit.ui.UncommittedChangeForegroundColor=114,157,186 -org.eclipse.ui.ide.systemDefault.org.eclipse.jdt.ui.ColoredLabels.inherited=143,143,191 -org.eclipse.ui.ide.systemDefault.org.eclipse.jdt.ui.ColoredLabels.match_highlight=206,92,0 -org.eclipse.ui.ide.systemDefault.org.eclipse.jdt.ui.ColoredLabels.writeaccess_highlight=255,128,128 -org.eclipse.ui.ide.systemDefault.org.eclipse.jdt.ui.Javadoc.backgroundColor=52,57,61 -org.eclipse.ui.ide.systemDefault.org.eclipse.jdt.ui.Javadoc.foregroundColor=238,238,238 -org.eclipse.ui.ide.systemDefault.org.eclipse.jface.REVISION_NEWEST_COLOR=75,44,3 -org.eclipse.ui.ide.systemDefault.org.eclipse.jface.REVISION_OLDEST_COLOR=154,113,61 -org.eclipse.ui.ide.systemDefault.org.eclipse.mylyn.tasks.ui.color.text.quoted=106,133,255 -org.eclipse.ui.ide.systemDefault.org.eclipse.mylyn.tasks.ui.colors.category.gradient.end=136,137,133 -org.eclipse.ui.ide.systemDefault.org.eclipse.mylyn.tasks.ui.colors.category.gradient.start=85,87,83 -org.eclipse.ui.ide.systemDefault.org.eclipse.mylyn.tasks.ui.colors.foreground.past.scheduled=52,101,164 -org.eclipse.ui.ide.systemDefault.org.eclipse.mylyn.tasks.ui.colors.foreground.task.active=117,80,123 -org.eclipse.ui.ide.systemDefault.org.eclipse.mylyn.tasks.ui.colors.foreground.thisweek.scheduled=85,87,83 -org.eclipse.ui.ide.systemDefault.org.eclipse.mylyn.tasks.ui.colors.foreground.today.scheduled=52,101,164 -org.eclipse.ui.ide.systemDefault.org.eclipse.search.ui.match.highlight=206,92,0 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.editors.rangeIndicatorColor=27,118,153 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_BG_END=41,41,41 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_BG_START=43,44,45 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_TEXT_COLOR=204,204,204 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.ACTIVE_TAB_BG_END=41,41,41 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.ACTIVE_TAB_BG_START=43,44,45 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.ACTIVE_TAB_INNER_KEYLINE_COLOR=75,76,79 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.ACTIVE_TAB_OUTER_KEYLINE_COLOR=75,76,79 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.ACTIVE_TAB_OUTLINE_COLOR=75,76,79 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.ACTIVE_TAB_TEXT_COLOR=221,221,221 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.ACTIVE_UNSELECTED_TABS_COLOR_END=64,64,67 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.ACTIVE_UNSELECTED_TABS_COLOR_START=73,74,77 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.INACTIVE_TAB_BG_END=49,53,56 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.INACTIVE_TAB_BG_START=59,64,66 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.INACTIVE_TAB_INNER_KEYLINE_COLOR=81,86,88 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.INACTIVE_TAB_OUTER_KEYLINE_COLOR=81,86,88 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.INACTIVE_TAB_OUTLINE_COLOR=59,64,66 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.INACTIVE_TAB_TEXT_COLOR=187,187,187 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.INACTIVE_UNSELECTED_TABS_COLOR_END=70,70,73 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.INACTIVE_UNSELECTED_TABS_COLOR_START=81,86,88 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.INFORMATION_BACKGROUND=81,86,88 -org.eclipse.ui.ide.systemDefault.org.eclipse.ui.workbench.INFORMATION_FOREGROUND=238,238,238 -org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_BG_END=255,255,255 -org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_BG_START=255,255,255 -org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_TEXT_COLOR=16,16,16 -org.eclipse.ui.workbench.ACTIVE_TAB_BG_END=255,255,255 -org.eclipse.ui.workbench.ACTIVE_TAB_BG_START=255,255,255 -org.eclipse.ui.workbench.ACTIVE_TAB_TEXT_COLOR=46,52,54 -org.eclipse.ui.workbench.INACTIVE_TAB_BG_START=246,245,244 diff --git a/.metadata/.plugins/org.eclipse.debug.core/.launches/cs3.launch b/.metadata/.plugins/org.eclipse.debug.core/.launches/cs3.launch deleted file mode 100644 index 237e286..0000000 --- a/.metadata/.plugins/org.eclipse.debug.core/.launches/cs3.launch +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml deleted file mode 100644 index 1b1d4c9..0000000 --- a/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml +++ /dev/null @@ -1,18 +0,0 @@ - -
-
- - - - - - -
-
- - - - - -
-
diff --git a/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml deleted file mode 100644 index 54ce69d..0000000 --- a/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi deleted file mode 100644 index b619e3a..0000000 --- a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi +++ /dev/null @@ -1,2505 +0,0 @@ - - - - activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration - - - - - - - - topLevel - shellMaximized - - - - - persp.actionSet:org.eclipse.mylyn.tasks.ui.navigation - persp.actionSet:org.eclipse.ui.cheatsheets.actionSet - persp.actionSet:org.eclipse.search.searchActionSet - persp.actionSet:org.eclipse.text.quicksearch.actionSet - persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation - persp.actionSet:org.eclipse.ui.edit.text.actionSet.navigation - persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo - persp.actionSet:org.eclipse.ui.externaltools.ExternalToolsSet - persp.actionSet:org.eclipse.ui.actionSet.keyBindings - persp.actionSet:org.eclipse.ui.actionSet.openFiles - persp.actionSet:org.eclipse.debug.ui.launchActionSet - persp.actionSet:org.eclipse.jdt.ui.JavaActionSet - persp.actionSet:org.eclipse.jdt.ui.JavaElementCreationActionSet - persp.actionSet:org.eclipse.ui.NavigateActionSet - persp.viewSC:org.eclipse.jdt.ui.PackageExplorer - persp.viewSC:org.eclipse.jdt.ui.TypeHierarchy - persp.viewSC:org.eclipse.jdt.ui.SourceView - persp.viewSC:org.eclipse.jdt.ui.JavadocView - persp.viewSC:org.eclipse.search.ui.views.SearchView - persp.viewSC:org.eclipse.ui.console.ConsoleView - persp.viewSC:org.eclipse.ui.views.ContentOutline - persp.viewSC:org.eclipse.ui.views.ProblemView - persp.viewSC:org.eclipse.ui.views.TaskList - persp.viewSC:org.eclipse.ui.views.ProgressView - persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer - persp.viewSC:org.eclipse.ui.texteditor.TemplatesView - persp.viewSC:org.eclipse.pde.runtime.LogView - persp.newWizSC:org.eclipse.jdt.ui.wizards.JavaProjectWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewPackageCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewClassCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewEnumCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewRecordCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewAnnotationCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSnippetFileCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewJavaWorkingSetWizard - persp.newWizSC:org.eclipse.ui.wizards.new.folder - persp.newWizSC:org.eclipse.ui.wizards.new.file - persp.newWizSC:org.eclipse.ui.editors.wizards.UntitledTextFileWizard - persp.perspSC:org.eclipse.jdt.ui.JavaBrowsingPerspective - persp.perspSC:org.eclipse.debug.ui.DebugPerspective - persp.showIn:org.eclipse.jdt.ui.PackageExplorer - persp.showIn:org.eclipse.team.ui.GenericHistoryView - persp.showIn:org.eclipse.ui.navigator.ProjectExplorer - persp.viewSC:org.eclipse.mylyn.tasks.ui.views.tasks - persp.newWizSC:org.eclipse.mylyn.tasks.ui.wizards.new.repository.task - persp.actionSet:org.eclipse.debug.ui.breakpointActionSet - persp.actionSet:org.eclipse.jdt.debug.ui.JDTDebugActionSet - persp.showIn:org.eclipse.egit.ui.RepositoriesView - persp.newWizSC:org.eclipse.m2e.core.wizards.Maven2ProjectWizard - persp.actionSet:org.eclipse.eclemma.ui.CoverageActionSet - persp.showIn:org.eclipse.eclemma.ui.CoverageView - persp.viewSC:org.eclipse.tm.terminal.view.ui.TerminalsView - persp.showIn:org.eclipse.tm.terminal.view.ui.TerminalsView - persp.viewSC:org.eclipse.jdt.bcoview.views.BytecodeOutlineView - persp.newWizSC:org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard - persp.actionSet:org.eclipse.jdt.junit.JUnitActionSet - persp.viewSC:org.eclipse.ant.ui.views.AntView - persp.editorOnboardingImageUri:platform:/plugin/org.eclipse.jdt.ui/$nl$/icons/full/onboarding_jperspective.png - persp.editorOnboardingText:Open a file or drop files here to open them. - persp.editorOnboardingCommand:Find Actions$$$Ctrl+3 - persp.editorOnboardingCommand:Show Key Assist$$$Shift+Ctrl+L - persp.editorOnboardingCommand:New$$$Ctrl+N - persp.editorOnboardingCommand:Open Type$$$Shift+Ctrl+T - - - - View - categoryTag:Git - - - - - - - - - View - categoryTag:Mylyn - - - - org.eclipse.e4.primaryNavigationStack - active - noFocus - - View - categoryTag:Java - - - View - categoryTag:Java - - - View - categoryTag:General - - - View - categoryTag:Java - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:Java - - - View - categoryTag:Ant - - - - - - org.eclipse.e4.secondaryDataStack - Java - - View - categoryTag:General - - - View - categoryTag:Java - - - View - categoryTag:Java - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:Terminal - - - View - categoryTag:Java - - - - - - - - - View - categoryTag:Help - - - View - categoryTag:General - - - View - categoryTag:Help - - - - - - - View - categoryTag:Help - - - - - - View - categoryTag:General - activeOnClose - - ViewMenu - menuContribution:menu - - - - - - - View - categoryTag:Help - - - - EditorStack - org.eclipse.e4.primaryDataStack - - - Editor - removeOnHide - org.eclipse.jdt.ui.CompilationUnitEditor - - - - removeOnHide - - - - Editor - removeOnHide - org.eclipse.jdt.ui.CompilationUnitEditor - Split Horizontal - - - - Editor - removeOnHide - org.eclipse.jdt.ui.CompilationUnitEditor - Split Horizontal - - - - - - - - - - View - categoryTag:Java - active - - ViewMenu - menuContribution:menu - - - - - - - View - categoryTag:Java - - - - - View - categoryTag:General - - - - - - View - categoryTag:General - - ViewMenu - menuContribution:menu - - - - - - - View - categoryTag:Java - - - - - - View - categoryTag:Java - - ViewMenu - menuContribution:menu - - - - - - - View - categoryTag:General - - - - - - View - categoryTag:General - - ViewMenu - menuContribution:menu - - - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - - - View - categoryTag:General - - ViewMenu - menuContribution:menu - - - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - - - View - categoryTag:Mylyn - - ViewMenu - menuContribution:menu - - - - - - - View - categoryTag:Git - - - - - - View - categoryTag:Terminal - - ViewMenu - menuContribution:menu - - - - - - - View - categoryTag:Java - - - - - View - categoryTag:Java - - - - - View - categoryTag:Ant - - - - - - View - categoryTag:Java - - ViewMenu - menuContribution:menu - - - - - - toolbarSeparator - - - - Draggable - - - - toolbarSeparator - - - - Draggable - - - - - toolbarSeparator - - - - Draggable - - - Draggable - - - Draggable - - - Draggable - - - toolbarSeparator - - - - Draggable - - - - Draggable - - - toolbarSeparator - - - - toolbarSeparator - - - - Draggable - - - stretch - SHOW_RESTORE_MENU - - - Draggable - HIDEABLE - SHOW_RESTORE_MENU - - - - - stretch - - - Draggable - - - Draggable - - - - - TrimStack - Draggable - - - TrimStack - Draggable - - - - - TrimStack - Draggable - - - TrimStack - Draggable - - - - - - - - - - - - - - - - - platform:gtk - - - - - - platform:gtk - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - platform:gtk - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Editor - removeOnHide - - - - - View - categoryTag:Ant - - - - - View - categoryTag:Gradle - - - - - View - categoryTag:Gradle - - - - - View - categoryTag:Debug - - - - - View - categoryTag:Debug - - - - - View - categoryTag:Debug - - - - - View - categoryTag:Debug - - - - - View - categoryTag:Debug - - - - - View - categoryTag:Debug - - - - - View - categoryTag:Debug - - - View - categoryTag:Debug - - - - - View - categoryTag:Java - - - - - View - categoryTag:Git - - - - - View - categoryTag:Git - - - - - View - categoryTag:Git - - - - - View - categoryTag:Git - NoRestore - - - - - View - categoryTag:Git - - - - - View - categoryTag:Help - - - - - View - categoryTag:Java - - - - - View - categoryTag:Java - - - - - View - categoryTag:Debug - - - - - View - categoryTag:Java - - - - - View - categoryTag:Java - - - - - View - categoryTag:Java - - - - - View - categoryTag:Java Browsing - - - - - View - categoryTag:Java Browsing - - - - - View - categoryTag:Java Browsing - - - - - View - categoryTag:Java Browsing - - - - - View - categoryTag:Java - - - - - View - categoryTag:General - - - - - View - categoryTag:Java - - - - - View - categoryTag:Java - - - - - View - categoryTag:Language Servers - - - - - View - categoryTag:Language Servers - - - - - View - categoryTag:Language Servers - - - - - View - categoryTag:Maven - - - - - View - categoryTag:Maven - - - - - View - categoryTag:Maven - - - - - View - categoryTag:Mylyn - - - - - View - categoryTag:Mylyn - - - - - View - categoryTag:Mylyn - - - - - View - categoryTag:Mylyn - - - - - View - categoryTag:Mylyn - - - - - View - categoryTag:Mylyn - - - - - View - categoryTag:Oomph - - - - - View - categoryTag:General - - - - - View - categoryTag:Version Control (Team) - - - - - View - categoryTag:Version Control (Team) - - - View - categoryTag:Help - - - - - View - categoryTag:Terminal - - - - - View - categoryTag:Other - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - - View - categoryTag:Help - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - - View - categoryTag:General - - - - glue - move_after:PerspectiveSpacer - SHOW_RESTORE_MENU - - - move_after:Spacer Glue - HIDEABLE - SHOW_RESTORE_MENU - - - glue - move_after:SearchField - SHOW_RESTORE_MENU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.metadata/.plugins/org.eclipse.egit.core/.org.eclipse.egit.core.cmp/.project b/.metadata/.plugins/org.eclipse.egit.core/.org.eclipse.egit.core.cmp/.project deleted file mode 100644 index 3c10856..0000000 --- a/.metadata/.plugins/org.eclipse.egit.core/.org.eclipse.egit.core.cmp/.project +++ /dev/null @@ -1,11 +0,0 @@ - - - .org.eclipse.egit.core.cmp - - - - - - - - diff --git a/.metadata/.plugins/org.eclipse.egit.core/.org.eclipse.egit.core.cmp/.settings/org.eclipse.core.resources.prefs b/.metadata/.plugins/org.eclipse.egit.core/.org.eclipse.egit.core.cmp/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0..0000000 --- a/.metadata/.plugins/org.eclipse.egit.core/.org.eclipse.egit.core.cmp/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1865797976.index b/.metadata/.plugins/org.eclipse.jdt.core/1865797976.index deleted file mode 100644 index 24c03b4..0000000 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/1865797976.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/2954488155.index b/.metadata/.plugins/org.eclipse.jdt.core/2954488155.index deleted file mode 100644 index 1b993a5..0000000 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/2954488155.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3024544230.index b/.metadata/.plugins/org.eclipse.jdt.core/3024544230.index deleted file mode 100644 index 2d5e1ab..0000000 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/3024544230.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3408771930.index b/.metadata/.plugins/org.eclipse.jdt.core/3408771930.index deleted file mode 100644 index d1bb350..0000000 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/3408771930.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3487212494.index b/.metadata/.plugins/org.eclipse.jdt.core/3487212494.index deleted file mode 100644 index 892e9cc..0000000 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/3487212494.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/783481251.index b/.metadata/.plugins/org.eclipse.jdt.core/783481251.index deleted file mode 100644 index 8132168..0000000 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/783481251.index and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/assumedExternalFilesCache b/.metadata/.plugins/org.eclipse.jdt.core/assumedExternalFilesCache deleted file mode 100644 index 593f470..0000000 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/assumedExternalFilesCache and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache b/.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache deleted file mode 100644 index 6c79ce8..0000000 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps b/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps deleted file mode 100644 index c82e850..0000000 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/indexNamesMap.txt b/.metadata/.plugins/org.eclipse.jdt.core/indexNamesMap.txt deleted file mode 100644 index 5f7d61c..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.core/indexNamesMap.txt +++ /dev/null @@ -1 +0,0 @@ -INDEX VERSION 1.134 diff --git a/.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt b/.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt deleted file mode 100644 index 8586397..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt +++ /dev/null @@ -1 +0,0 @@ -java \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache b/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache deleted file mode 100644 index ef308e1..0000000 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt b/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt deleted file mode 100644 index ba7a2a5..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt +++ /dev/null @@ -1,7 +0,0 @@ -INDEX VERSION 1.134+/home/jacob/School/CS3/.metadata/.plugins/org.eclipse.jdt.core -3024544230.index -783481251.index -3408771930.index -1865797976.index -3487212494.index -2954488155.index diff --git a/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat b/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat deleted file mode 100644 index 33e9d99..0000000 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.jdt.launching/.install.xml b/.metadata/.plugins/org.eclipse.jdt.launching/.install.xml deleted file mode 100644 index 59948c0..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.launching/.install.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml b/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml deleted file mode 100644 index 6dfd7e5..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml b/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml deleted file mode 100644 index a4ee3cb..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml b/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml deleted file mode 100644 index 9e390f5..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml deleted file mode 100644 index 4868a8d..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml +++ /dev/null @@ -1,45 +0,0 @@ - -
- - - - - -
- - - - - -
-
- - - - - -
-
-
-
- - - - - -
-
- -
-
- - -
-
-
-
-
-
- -
-
diff --git a/.metadata/.plugins/org.eclipse.m2e.core/workspaceState.ser b/.metadata/.plugins/org.eclipse.m2e.core/workspaceState.ser deleted file mode 100644 index abbf8e5..0000000 Binary files a/.metadata/.plugins/org.eclipse.m2e.core/workspaceState.ser and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.m2e.logback/logback.2.6.1.20240411-1122.xml b/.metadata/.plugins/org.eclipse.m2e.logback/logback.2.6.1.20240411-1122.xml deleted file mode 100644 index 9effde7..0000000 --- a/.metadata/.plugins/org.eclipse.m2e.logback/logback.2.6.1.20240411-1122.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - %date [%thread] %-5level %logger{35} - %msg%n - - - ${org.eclipse.m2e.log.console.threshold:-OFF} - - - - - ${org.eclipse.m2e.log.dir}/0.log - - ${org.eclipse.m2e.log.dir}/%i.log - 1 - 10 - - - 10MB - - - %date [%thread] %-5level %logger{35} - %msg%n - - - - - - WARN - - - - - - - - - - - - - diff --git a/.metadata/.plugins/org.eclipse.mylyn.github.ui/avatars.ser b/.metadata/.plugins/org.eclipse.mylyn.github.ui/avatars.ser deleted file mode 100644 index 1e9a069..0000000 Binary files a/.metadata/.plugins/org.eclipse.mylyn.github.ui/avatars.ser and /dev/null differ diff --git a/.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup b/.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup deleted file mode 100644 index 1f73e14..0000000 --- a/.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/.metadata/.plugins/org.eclipse.tips.ide/dialog_settings.xml b/.metadata/.plugins/org.eclipse.tips.ide/dialog_settings.xml deleted file mode 100644 index 5ca0b77..0000000 --- a/.metadata/.plugins/org.eclipse.tips.ide/dialog_settings.xml +++ /dev/null @@ -1,3 +0,0 @@ - -
-
diff --git a/.metadata/.plugins/org.eclipse.tm.terminal.view.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.tm.terminal.view.ui/dialog_settings.xml deleted file mode 100644 index 77b6c9b..0000000 --- a/.metadata/.plugins/org.eclipse.tm.terminal.view.ui/dialog_settings.xml +++ /dev/null @@ -1,11 +0,0 @@ - -
-
- -
-
- -
-
-
-
diff --git a/.metadata/.plugins/org.eclipse.ui.intro/introstate b/.metadata/.plugins/org.eclipse.ui.intro/introstate deleted file mode 100644 index 02f134f..0000000 --- a/.metadata/.plugins/org.eclipse.ui.intro/introstate +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml deleted file mode 100644 index 16024ad..0000000 --- a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml +++ /dev/null @@ -1,10 +0,0 @@ - -
-
- - - - - -
-
diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml deleted file mode 100644 index 7fccaad..0000000 --- a/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.metadata/version.ini b/.metadata/version.ini deleted file mode 100644 index 8a53478..0000000 --- a/.metadata/version.ini +++ /dev/null @@ -1,3 +0,0 @@ -#Tue Nov 05 19:46:43 EST 2024 -org.eclipse.core.runtime=2 -org.eclipse.platform=4.33.0.v20240903-0240