package curam.inheritance; import curam.inheritance.Dog; import curam.inheritance.struct.DogDtls; import curam.test.codetable.ANIMAL_TYPE; class Dog extends Animal<Dog, DogDtls> implements Dog { protected Dog() { } @Override protected String getDiscriminatorValue() { return ANIMAL_TYPE.DOG; } @Override protected void mapBaseKeyToConcreteDtls() { getConcreteRowDtls().animalID = getBaseRowDtls().animalID; } public String getFavouriteTrick() { return getConcreteRowDtls().favouriteTrick; } public void setFavouriteTrick(final String value) { getConcreteRowDtls().favouriteTrick = value; } public void speak() { System.out.println("Woof! My name is " + getName() + " and I like to " + getFavouriteTrick()); } public void setNewInstanceDefaults() {// none required } public void crossFieldValidation() {// none required } public void crossEntityValidation() {// none required } public void mandatoryFieldValidation() {// none required } }
The structure of this class is similar to CatImpl above.