// ----------> GENERATED FILE - DON'T TOUCH! <----------
// generator: ilarkesto.mda.legacy.generator.DaoGenerator
package scrum.server.estimation;
import java.util.*;
import ilarkesto.persistence.*;
import ilarkesto.core.logging.Log;
import ilarkesto.base.*;
import ilarkesto.base.time.*;
import ilarkesto.auth.*;
import ilarkesto.fp.*;
public abstract class GRequirementEstimationVoteDao
extends ilarkesto.persistence.ADao<RequirementEstimationVote> {
public final String getEntityName() {
return RequirementEstimationVote.TYPE;
}
public final Class getEntityClass() {
return RequirementEstimationVote.class;
}
public Set<RequirementEstimationVote> getEntitiesVisibleForUser(final scrum.server.admin.User user) {
return getEntities(new Predicate<RequirementEstimationVote>() {
public boolean test(RequirementEstimationVote e) {
return Auth.isVisible(e, user);
}
});
}
// --- clear caches ---
public void clearCaches() {
requirementEstimationVotesByRequirementCache.clear();
requirementsCache = null;
requirementEstimationVotesByUserCache.clear();
usersCache = null;
requirementEstimationVotesByEstimatedWorkCache.clear();
estimatedWorksCache = null;
}
@Override
public void entityDeleted(EntityEvent event) {
super.entityDeleted(event);
if (event.getEntity() instanceof RequirementEstimationVote) {
clearCaches();
}
}
@Override
public void entitySaved(EntityEvent event) {
super.entitySaved(event);
if (event.getEntity() instanceof RequirementEstimationVote) {
clearCaches();
}
}
// -----------------------------------------------------------
// - requirement
// -----------------------------------------------------------
private final Cache<scrum.server.project.Requirement,Set<RequirementEstimationVote>> requirementEstimationVotesByRequirementCache = new Cache<scrum.server.project.Requirement,Set<RequirementEstimationVote>>(
new Cache.Factory<scrum.server.project.Requirement,Set<RequirementEstimationVote>>() {
public Set<RequirementEstimationVote> create(scrum.server.project.Requirement requirement) {
return getEntities(new IsRequirement(requirement));
}
});
public final Set<RequirementEstimationVote> getRequirementEstimationVotesByRequirement(scrum.server.project.Requirement requirement) {
return requirementEstimationVotesByRequirementCache.get(requirement);
}
private Set<scrum.server.project.Requirement> requirementsCache;
public final Set<scrum.server.project.Requirement> getRequirements() {
if (requirementsCache == null) {
requirementsCache = new HashSet<scrum.server.project.Requirement>();
for (RequirementEstimationVote e : getEntities()) {
if (e.isRequirementSet()) requirementsCache.add(e.getRequirement());
}
}
return requirementsCache;
}
private static class IsRequirement implements Predicate<RequirementEstimationVote> {
private scrum.server.project.Requirement value;
public IsRequirement(scrum.server.project.Requirement value) {
this.value = value;
}
public boolean test(RequirementEstimationVote e) {
return e.isRequirement(value);
}
}
// -----------------------------------------------------------
// - user
// -----------------------------------------------------------
private final Cache<scrum.server.admin.User,Set<RequirementEstimationVote>> requirementEstimationVotesByUserCache = new Cache<scrum.server.admin.User,Set<RequirementEstimationVote>>(
new Cache.Factory<scrum.server.admin.User,Set<RequirementEstimationVote>>() {
public Set<RequirementEstimationVote> create(scrum.server.admin.User user) {
return getEntities(new IsUser(user));
}
});
public final Set<RequirementEstimationVote> getRequirementEstimationVotesByUser(scrum.server.admin.User user) {
return requirementEstimationVotesByUserCache.get(user);
}
private Set<scrum.server.admin.User> usersCache;
public final Set<scrum.server.admin.User> getUsers() {
if (usersCache == null) {
usersCache = new HashSet<scrum.server.admin.User>();
for (RequirementEstimationVote e : getEntities()) {
if (e.isUserSet()) usersCache.add(e.getUser());
}
}
return usersCache;
}
private static class IsUser implements Predicate<RequirementEstimationVote> {
private scrum.server.admin.User value;
public IsUser(scrum.server.admin.User value) {
this.value = value;
}
public boolean test(RequirementEstimationVote e) {
return e.isUser(value);
}
}
// -----------------------------------------------------------
// - estimatedWork
// -----------------------------------------------------------
private final Cache<java.lang.Float,Set<RequirementEstimationVote>> requirementEstimationVotesByEstimatedWorkCache = new Cache<java.lang.Float,Set<RequirementEstimationVote>>(
new Cache.Factory<java.lang.Float,Set<RequirementEstimationVote>>() {
public Set<RequirementEstimationVote> create(java.lang.Float estimatedWork) {
return getEntities(new IsEstimatedWork(estimatedWork));
}
});
public final Set<RequirementEstimationVote> getRequirementEstimationVotesByEstimatedWork(java.lang.Float estimatedWork) {
return requirementEstimationVotesByEstimatedWorkCache.get(estimatedWork);
}
private Set<java.lang.Float> estimatedWorksCache;
public final Set<java.lang.Float> getEstimatedWorks() {
if (estimatedWorksCache == null) {
estimatedWorksCache = new HashSet<java.lang.Float>();
for (RequirementEstimationVote e : getEntities()) {
if (e.isEstimatedWorkSet()) estimatedWorksCache.add(e.getEstimatedWork());
}
}
return estimatedWorksCache;
}
private static class IsEstimatedWork implements Predicate<RequirementEstimationVote> {
private java.lang.Float value;
public IsEstimatedWork(java.lang.Float value) {
this.value = value;
}
public boolean test(RequirementEstimationVote e) {
return e.isEstimatedWork(value);
}
}
// --- valueObject classes ---
@Override
protected Set<Class> getValueObjectClasses() {
Set<Class> ret = new HashSet<Class>(super.getValueObjectClasses());
return ret;
}
@Override
public Map<String, Class> getAliases() {
Map<String, Class> aliases = new HashMap<String, Class>(super.getAliases());
return aliases;
}
// --- dependencies ---
scrum.server.project.RequirementDao requirementDao;
public void setRequirementDao(scrum.server.project.RequirementDao requirementDao) {
this.requirementDao = requirementDao;
}
}