// ----------> GENERATED FILE - DON'T TOUCH! <----------
// generator: ilarkesto.mda.legacy.generator.DaoGenerator
package scrum.server.collaboration;
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 GWikipageDao
extends ilarkesto.persistence.ADao<Wikipage> {
public final String getEntityName() {
return Wikipage.TYPE;
}
public final Class getEntityClass() {
return Wikipage.class;
}
public Set<Wikipage> getEntitiesVisibleForUser(final scrum.server.admin.User user) {
return getEntities(new Predicate<Wikipage>() {
public boolean test(Wikipage e) {
return Auth.isVisible(e, user);
}
});
}
// --- clear caches ---
public void clearCaches() {
wikipagesByProjectCache.clear();
projectsCache = null;
wikipagesByNameCache.clear();
namesCache = null;
wikipagesByTextCache.clear();
textsCache = null;
}
@Override
public void entityDeleted(EntityEvent event) {
super.entityDeleted(event);
if (event.getEntity() instanceof Wikipage) {
clearCaches();
}
}
@Override
public void entitySaved(EntityEvent event) {
super.entitySaved(event);
if (event.getEntity() instanceof Wikipage) {
clearCaches();
}
}
// -----------------------------------------------------------
// - project
// -----------------------------------------------------------
private final Cache<scrum.server.project.Project,Set<Wikipage>> wikipagesByProjectCache = new Cache<scrum.server.project.Project,Set<Wikipage>>(
new Cache.Factory<scrum.server.project.Project,Set<Wikipage>>() {
public Set<Wikipage> create(scrum.server.project.Project project) {
return getEntities(new IsProject(project));
}
});
public final Set<Wikipage> getWikipagesByProject(scrum.server.project.Project project) {
return wikipagesByProjectCache.get(project);
}
private Set<scrum.server.project.Project> projectsCache;
public final Set<scrum.server.project.Project> getProjects() {
if (projectsCache == null) {
projectsCache = new HashSet<scrum.server.project.Project>();
for (Wikipage e : getEntities()) {
if (e.isProjectSet()) projectsCache.add(e.getProject());
}
}
return projectsCache;
}
private static class IsProject implements Predicate<Wikipage> {
private scrum.server.project.Project value;
public IsProject(scrum.server.project.Project value) {
this.value = value;
}
public boolean test(Wikipage e) {
return e.isProject(value);
}
}
// -----------------------------------------------------------
// - name
// -----------------------------------------------------------
private final Cache<java.lang.String,Set<Wikipage>> wikipagesByNameCache = new Cache<java.lang.String,Set<Wikipage>>(
new Cache.Factory<java.lang.String,Set<Wikipage>>() {
public Set<Wikipage> create(java.lang.String name) {
return getEntities(new IsName(name));
}
});
public final Set<Wikipage> getWikipagesByName(java.lang.String name) {
return wikipagesByNameCache.get(name);
}
private Set<java.lang.String> namesCache;
public final Set<java.lang.String> getNames() {
if (namesCache == null) {
namesCache = new HashSet<java.lang.String>();
for (Wikipage e : getEntities()) {
if (e.isNameSet()) namesCache.add(e.getName());
}
}
return namesCache;
}
private static class IsName implements Predicate<Wikipage> {
private java.lang.String value;
public IsName(java.lang.String value) {
this.value = value;
}
public boolean test(Wikipage e) {
return e.isName(value);
}
}
// -----------------------------------------------------------
// - text
// -----------------------------------------------------------
private final Cache<java.lang.String,Set<Wikipage>> wikipagesByTextCache = new Cache<java.lang.String,Set<Wikipage>>(
new Cache.Factory<java.lang.String,Set<Wikipage>>() {
public Set<Wikipage> create(java.lang.String text) {
return getEntities(new IsText(text));
}
});
public final Set<Wikipage> getWikipagesByText(java.lang.String text) {
return wikipagesByTextCache.get(text);
}
private Set<java.lang.String> textsCache;
public final Set<java.lang.String> getTexts() {
if (textsCache == null) {
textsCache = new HashSet<java.lang.String>();
for (Wikipage e : getEntities()) {
if (e.isTextSet()) textsCache.add(e.getText());
}
}
return textsCache;
}
private static class IsText implements Predicate<Wikipage> {
private java.lang.String value;
public IsText(java.lang.String value) {
this.value = value;
}
public boolean test(Wikipage e) {
return e.isText(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.ProjectDao projectDao;
public void setProjectDao(scrum.server.project.ProjectDao projectDao) {
this.projectDao = projectDao;
}
}