package br.com.while42.rpgcs.model.character; import br.com.while42.rpgcs.model.character.attributes.TypeEyeColor; import br.com.while42.rpgcs.model.character.attributes.TypeGender; import br.com.while42.rpgcs.model.character.attributes.TypeHairColor; import br.com.while42.rpgcs.model.character.attributes.TypeRpgAlignment; import br.com.while42.rpgcs.model.character.attributes.TypeRpgRace; import br.com.while42.rpgcs.model.character.attributes.TypeRpgReligion; import br.com.while42.rpgcs.model.character.attributes.TypeRpgSize; import br.com.while42.rpgcs.model.character.attributes.TypeSkinColor; import br.com.while42.rpgcs.model.character.attributes.TypeVision; public class BuilderCharacteristics { private String name; private TypeRpgRace race; private TypeRpgAlignment alignment; private TypeRpgReligion religion; private TypeRpgSize size; private Integer age; private TypeGender gender; private Integer height; private Integer weight; private TypeEyeColor eye; private TypeHairColor hair; private TypeSkinColor skin; private TypeVision vision; private Characteristics characteristics; public BuilderCharacteristics() { this.characteristics = new Characteristics(); } public BuilderCharacteristics(Characteristics characteristics) { this.characteristics = new Characteristics(characteristics); } public BuilderCharacteristicsWithName setName(String name) { return new BuilderCharacteristicsWithName(name); } public class BuilderCharacteristicsWithName { private BuilderCharacteristicsWithName(String n) { name = n; } public BuilderCharacteristicsWithRace setRace(TypeRpgRace race) { return new BuilderCharacteristicsWithRace(race); } } public class BuilderCharacteristicsWithRace { private BuilderCharacteristicsWithRace(TypeRpgRace r) { race = r; } public BuilderCharacteristicsWithAlignment setAlignment(TypeRpgAlignment alignment) { return new BuilderCharacteristicsWithAlignment(alignment); } } public class BuilderCharacteristicsWithAlignment { private BuilderCharacteristicsWithAlignment(TypeRpgAlignment a) { alignment = a; } public BuilderCharacteristicsWithReligion setReligion(TypeRpgReligion religion) { return new BuilderCharacteristicsWithReligion(religion); } } public class BuilderCharacteristicsWithReligion { private BuilderCharacteristicsWithReligion(TypeRpgReligion r) { religion = r; } public BuilderCharacteristicsWithSize setSize(TypeRpgSize size) { return new BuilderCharacteristicsWithSize(size); } } public class BuilderCharacteristicsWithSize { private BuilderCharacteristicsWithSize(TypeRpgSize s) { size = s; } public BuilderCharacteristicsWithAge setAge(Integer age) { return new BuilderCharacteristicsWithAge(age); } } public class BuilderCharacteristicsWithAge { private BuilderCharacteristicsWithAge(Integer a) { age = a; } public BuilderCharacteristicsWithGender setGender(TypeGender gender) { return new BuilderCharacteristicsWithGender(gender); } } public class BuilderCharacteristicsWithGender { private BuilderCharacteristicsWithGender(TypeGender g) { gender = g; } public BuilderCharacteristicsWithHeight setHeight(Integer height) { return new BuilderCharacteristicsWithHeight(height); } } public class BuilderCharacteristicsWithHeight { private BuilderCharacteristicsWithHeight(Integer h) { height = h; } public BuilderCharacteristicsWithWeight setWeight(Integer weight) { return new BuilderCharacteristicsWithWeight(weight); } } public class BuilderCharacteristicsWithWeight { private BuilderCharacteristicsWithWeight(Integer w) { weight = w; } public BuilderCharacteristicsWithEye setEye(TypeEyeColor color) { return new BuilderCharacteristicsWithEye(color); } } public class BuilderCharacteristicsWithEye { private BuilderCharacteristicsWithEye(TypeEyeColor color) { eye = color; } public BuilderCharacteristicsWithHair setHair(TypeHairColor color) { return new BuilderCharacteristicsWithHair(color); } } public class BuilderCharacteristicsWithHair { private BuilderCharacteristicsWithHair(TypeHairColor color) { hair = color; } public BuilderCharacteristicsWithSkin setSkin(TypeSkinColor color) { return new BuilderCharacteristicsWithSkin(color); } } public class BuilderCharacteristicsWithSkin { private BuilderCharacteristicsWithSkin(TypeSkinColor color) { skin = color; } public BuilderCharacteristicsWithVision setVision(TypeVision vision) { return new BuilderCharacteristicsWithVision(vision); } } public class BuilderCharacteristicsWithVision { private BuilderCharacteristicsWithVision(TypeVision v) { vision = v; } public Characteristics toCharacteristics() { characteristics.setName(name); characteristics.setRace(race); characteristics.setAlignment(alignment); characteristics.setReligion(religion); characteristics.setSize(size); characteristics.setAge(age); characteristics.setGender(gender); characteristics.setHeight(height); characteristics.setWeight(weight); characteristics.setEye(eye); characteristics.setHair(hair); characteristics.setSkin(skin); characteristics.setVision(vision); return characteristics; } } }