/** * PlanetCharacter.java * Created On 2007, Oct 22, 2007 1:23:45 PM * @author E. Rajasekar */ package app.astrosoft.beans; import java.util.Map; import java.util.Set; import app.astrosoft.consts.Planet; public class PlanetCharacter { private Map<Planet, Boolean> planetCharacter; public PlanetCharacter(Map<Planet, Boolean> planetCharacter){ this.planetCharacter = planetCharacter; } public boolean isBenefic(Planet planet){ if (planetCharacter.containsKey(planet)){ return planetCharacter.get(planet); } if(planet.isAsc()) { return true; } throw new IllegalArgumentException("isBenefic() is not applicable for " + planet.name()); } public boolean isMalefic(Planet planet){ if (planetCharacter.containsKey(planet)){ return (!planetCharacter.get(planet)); } if(planet.isAsc()){ return true; } throw new IllegalArgumentException("isMalefic() is not applicable for " + planet.name()); } public boolean isAllBenefics(Set<Planet> planets){ if (planets.isEmpty()) return false; for(Planet p : planets){ if (!isBenefic(p)){ return false; } } return true; } public boolean isAnyBenefics(Set<Planet> planets){ if (planets.isEmpty()) return false; for(Planet p : planets){ if (isBenefic(p)){ return true; } } return false; } public boolean isAllMalefics(Set<Planet> planets){ if (planets.isEmpty()) return false; for(Planet p : planets){ if (!isMalefic(p)){ return false; } } return true; } public boolean isAnyMalefics(Set<Planet> planets){ if (planets.isEmpty()) return false; for(Planet p : planets){ if (isMalefic(p)){ return true; } } return false; } @Override public String toString() { return planetCharacter.toString(); } }