// ----------> GENERATED FILE - DON'T TOUCH! <----------
// generator: ilarkesto.mda.legacy.generator.EntityGenerator
package scrum.server.pr;
import java.util.*;
import ilarkesto.persistence.*;
import ilarkesto.core.logging.Log;
import ilarkesto.base.*;
import ilarkesto.base.time.*;
import ilarkesto.auth.*;
public abstract class GBlogEntry
extends AEntity
implements ilarkesto.auth.ViewProtected<scrum.server.admin.User>, ilarkesto.search.Searchable, java.lang.Comparable<BlogEntry> {
// --- AEntity ---
public final BlogEntryDao getDao() {
return blogEntryDao;
}
protected void repairDeadDatob(ADatob datob) {
}
@Override
public void storeProperties(Map properties) {
super.storeProperties(properties);
properties.put("projectId", this.projectId);
properties.put("number", this.number);
properties.put("authorsIds", this.authorsIds);
properties.put("title", this.title);
properties.put("text", this.text);
properties.put("dateAndTime", this.dateAndTime == null ? null : this.dateAndTime.toString());
properties.put("releasesIds", this.releasesIds);
properties.put("published", this.published);
}
public int compareTo(BlogEntry other) {
return toString().toLowerCase().compareTo(other.toString().toLowerCase());
}
private static final ilarkesto.core.logging.Log LOG = ilarkesto.core.logging.Log.get(GBlogEntry.class);
public static final String TYPE = "blogEntry";
// -----------------------------------------------------------
// - Searchable
// -----------------------------------------------------------
public boolean matchesKey(String key) {
if (super.matchesKey(key)) return true;
if (matchesKey(getTitle(), key)) return true;
if (matchesKey(getText(), key)) return true;
return false;
}
// -----------------------------------------------------------
// - project
// -----------------------------------------------------------
private String projectId;
private transient scrum.server.project.Project projectCache;
private void updateProjectCache() {
projectCache = this.projectId == null ? null : (scrum.server.project.Project)projectDao.getById(this.projectId);
}
public final String getProjectId() {
return this.projectId;
}
public final scrum.server.project.Project getProject() {
if (projectCache == null) updateProjectCache();
return projectCache;
}
public final void setProject(scrum.server.project.Project project) {
project = prepareProject(project);
if (isProject(project)) return;
this.projectId = project == null ? null : project.getId();
projectCache = project;
fireModified("project="+project);
}
protected scrum.server.project.Project prepareProject(scrum.server.project.Project project) {
return project;
}
protected void repairDeadProjectReference(String entityId) {
if (this.projectId == null || entityId.equals(this.projectId)) {
repairMissingMaster();
}
}
public final boolean isProjectSet() {
return this.projectId != null;
}
public final boolean isProject(scrum.server.project.Project project) {
if (this.projectId == null && project == null) return true;
return project != null && project.getId().equals(this.projectId);
}
protected final void updateProject(Object value) {
setProject(value == null ? null : (scrum.server.project.Project)projectDao.getById((String)value));
}
// -----------------------------------------------------------
// - number
// -----------------------------------------------------------
private int number;
public final int getNumber() {
return number;
}
public final void setNumber(int number) {
number = prepareNumber(number);
if (isNumber(number)) return;
this.number = number;
fireModified("number="+number);
}
protected int prepareNumber(int number) {
return number;
}
public final boolean isNumber(int number) {
return this.number == number;
}
protected final void updateNumber(Object value) {
setNumber((Integer)value);
}
// -----------------------------------------------------------
// - authors
// -----------------------------------------------------------
private java.util.Set<String> authorsIds = new java.util.HashSet<String>();
public final java.util.Set<scrum.server.admin.User> getAuthors() {
return (java.util.Set) userDao.getByIdsAsSet(this.authorsIds);
}
public final void setAuthors(Collection<scrum.server.admin.User> authors) {
authors = prepareAuthors(authors);
if (authors == null) authors = Collections.emptyList();
java.util.Set<String> ids = getIdsAsSet(authors);
if (this.authorsIds.equals(ids)) return;
this.authorsIds = ids;
fireModified("authors="+Str.format(authors));
}
protected Collection<scrum.server.admin.User> prepareAuthors(Collection<scrum.server.admin.User> authors) {
return authors;
}
protected void repairDeadAuthorReference(String entityId) {
if (this.authorsIds.remove(entityId)) fireModified("authors-=" + entityId);
}
public final boolean containsAuthor(scrum.server.admin.User author) {
if (author == null) return false;
return this.authorsIds.contains(author.getId());
}
public final int getAuthorsCount() {
return this.authorsIds.size();
}
public final boolean isAuthorsEmpty() {
return this.authorsIds.isEmpty();
}
public final boolean addAuthor(scrum.server.admin.User author) {
if (author == null) throw new IllegalArgumentException("author == null");
boolean added = this.authorsIds.add(author.getId());
if (added) fireModified("authors+=" + author);
return added;
}
public final boolean addAuthors(Collection<scrum.server.admin.User> authors) {
if (authors == null) throw new IllegalArgumentException("authors == null");
boolean added = false;
for (scrum.server.admin.User author : authors) {
added = added | this.authorsIds.add(author.getId());
}
if (added) fireModified("authors+="+Str.format(authors));
return added;
}
public final boolean removeAuthor(scrum.server.admin.User author) {
if (author == null) throw new IllegalArgumentException("author == null");
if (this.authorsIds == null) return false;
boolean removed = this.authorsIds.remove(author.getId());
if (removed) fireModified("authors-=" + author);
return removed;
}
public final boolean removeAuthors(Collection<scrum.server.admin.User> authors) {
if (authors == null) return false;
if (authors.isEmpty()) return false;
boolean removed = false;
for (scrum.server.admin.User _element: authors) {
removed = removed | removeAuthor(_element);
}
if (removed) fireModified("authors-="+Str.format(authors));
return removed;
}
public final boolean clearAuthors() {
if (this.authorsIds.isEmpty()) return false;
this.authorsIds.clear();
fireModified("authors cleared");
return true;
}
protected final void updateAuthors(Object value) {
Collection<String> ids = (Collection<String>) value;
setAuthors((java.util.Set) userDao.getByIdsAsSet(ids));
}
// -----------------------------------------------------------
// - title
// -----------------------------------------------------------
private java.lang.String title;
public final java.lang.String getTitle() {
return title;
}
public final void setTitle(java.lang.String title) {
title = prepareTitle(title);
if (isTitle(title)) return;
this.title = title;
fireModified("title="+title);
}
protected java.lang.String prepareTitle(java.lang.String title) {
title = Str.removeUnreadableChars(title);
return title;
}
public final boolean isTitleSet() {
return this.title != null;
}
public final boolean isTitle(java.lang.String title) {
if (this.title == null && title == null) return true;
return this.title != null && this.title.equals(title);
}
protected final void updateTitle(Object value) {
setTitle((java.lang.String)value);
}
// -----------------------------------------------------------
// - text
// -----------------------------------------------------------
private java.lang.String text;
public final java.lang.String getText() {
return text;
}
public final void setText(java.lang.String text) {
text = prepareText(text);
if (isText(text)) return;
this.text = text;
fireModified("text="+text);
}
protected java.lang.String prepareText(java.lang.String text) {
text = Str.removeUnreadableChars(text);
return text;
}
public final boolean isTextSet() {
return this.text != null;
}
public final boolean isText(java.lang.String text) {
if (this.text == null && text == null) return true;
return this.text != null && this.text.equals(text);
}
protected final void updateText(Object value) {
setText((java.lang.String)value);
}
// -----------------------------------------------------------
// - dateAndTime
// -----------------------------------------------------------
private ilarkesto.base.time.DateAndTime dateAndTime;
public final ilarkesto.base.time.DateAndTime getDateAndTime() {
return dateAndTime;
}
public final void setDateAndTime(ilarkesto.base.time.DateAndTime dateAndTime) {
dateAndTime = prepareDateAndTime(dateAndTime);
if (isDateAndTime(dateAndTime)) return;
this.dateAndTime = dateAndTime;
fireModified("dateAndTime="+dateAndTime);
}
protected ilarkesto.base.time.DateAndTime prepareDateAndTime(ilarkesto.base.time.DateAndTime dateAndTime) {
return dateAndTime;
}
public final boolean isDateAndTimeSet() {
return this.dateAndTime != null;
}
public final boolean isDateAndTime(ilarkesto.base.time.DateAndTime dateAndTime) {
if (this.dateAndTime == null && dateAndTime == null) return true;
return this.dateAndTime != null && this.dateAndTime.equals(dateAndTime);
}
protected final void updateDateAndTime(Object value) {
value = value == null ? null : new ilarkesto.base.time.DateAndTime((String)value);
setDateAndTime((ilarkesto.base.time.DateAndTime)value);
}
// -----------------------------------------------------------
// - releases
// -----------------------------------------------------------
private java.util.Set<String> releasesIds = new java.util.HashSet<String>();
public final java.util.Set<scrum.server.release.Release> getReleases() {
return (java.util.Set) releaseDao.getByIdsAsSet(this.releasesIds);
}
public final void setReleases(Collection<scrum.server.release.Release> releases) {
releases = prepareReleases(releases);
if (releases == null) releases = Collections.emptyList();
java.util.Set<String> ids = getIdsAsSet(releases);
if (this.releasesIds.equals(ids)) return;
this.releasesIds = ids;
fireModified("releases="+Str.format(releases));
}
protected Collection<scrum.server.release.Release> prepareReleases(Collection<scrum.server.release.Release> releases) {
return releases;
}
protected void repairDeadReleaseReference(String entityId) {
if (this.releasesIds.remove(entityId)) fireModified("releases-=" + entityId);
}
public final boolean containsRelease(scrum.server.release.Release release) {
if (release == null) return false;
return this.releasesIds.contains(release.getId());
}
public final int getReleasesCount() {
return this.releasesIds.size();
}
public final boolean isReleasesEmpty() {
return this.releasesIds.isEmpty();
}
public final boolean addRelease(scrum.server.release.Release release) {
if (release == null) throw new IllegalArgumentException("release == null");
boolean added = this.releasesIds.add(release.getId());
if (added) fireModified("releases+=" + release);
return added;
}
public final boolean addReleases(Collection<scrum.server.release.Release> releases) {
if (releases == null) throw new IllegalArgumentException("releases == null");
boolean added = false;
for (scrum.server.release.Release release : releases) {
added = added | this.releasesIds.add(release.getId());
}
if (added) fireModified("releases+="+Str.format(releases));
return added;
}
public final boolean removeRelease(scrum.server.release.Release release) {
if (release == null) throw new IllegalArgumentException("release == null");
if (this.releasesIds == null) return false;
boolean removed = this.releasesIds.remove(release.getId());
if (removed) fireModified("releases-=" + release);
return removed;
}
public final boolean removeReleases(Collection<scrum.server.release.Release> releases) {
if (releases == null) return false;
if (releases.isEmpty()) return false;
boolean removed = false;
for (scrum.server.release.Release _element: releases) {
removed = removed | removeRelease(_element);
}
if (removed) fireModified("releases-="+Str.format(releases));
return removed;
}
public final boolean clearReleases() {
if (this.releasesIds.isEmpty()) return false;
this.releasesIds.clear();
fireModified("releases cleared");
return true;
}
protected final void updateReleases(Object value) {
Collection<String> ids = (Collection<String>) value;
setReleases((java.util.Set) releaseDao.getByIdsAsSet(ids));
}
// -----------------------------------------------------------
// - published
// -----------------------------------------------------------
private boolean published;
public final boolean isPublished() {
return published;
}
public final void setPublished(boolean published) {
published = preparePublished(published);
if (isPublished(published)) return;
this.published = published;
fireModified("published="+published);
}
protected boolean preparePublished(boolean published) {
return published;
}
public final boolean isPublished(boolean published) {
return this.published == published;
}
protected final void updatePublished(Object value) {
setPublished((Boolean)value);
}
public void updateProperties(Map<?, ?> properties) {
for (Map.Entry entry : properties.entrySet()) {
String property = (String) entry.getKey();
if (property.equals("id")) continue;
Object value = entry.getValue();
if (property.equals("projectId")) updateProject(value);
if (property.equals("number")) updateNumber(value);
if (property.equals("authorsIds")) updateAuthors(value);
if (property.equals("title")) updateTitle(value);
if (property.equals("text")) updateText(value);
if (property.equals("dateAndTime")) updateDateAndTime(value);
if (property.equals("releasesIds")) updateReleases(value);
if (property.equals("published")) updatePublished(value);
}
}
protected void repairDeadReferences(String entityId) {
super.repairDeadReferences(entityId);
repairDeadProjectReference(entityId);
if (this.authorsIds == null) this.authorsIds = new java.util.HashSet<String>();
repairDeadAuthorReference(entityId);
if (this.releasesIds == null) this.releasesIds = new java.util.HashSet<String>();
repairDeadReleaseReference(entityId);
}
// --- ensure integrity ---
public void ensureIntegrity() {
super.ensureIntegrity();
if (!isProjectSet()) {
repairMissingMaster();
return;
}
try {
getProject();
} catch (EntityDoesNotExistException ex) {
LOG.info("Repairing dead project reference");
repairDeadProjectReference(this.projectId);
}
if (this.authorsIds == null) this.authorsIds = new java.util.HashSet<String>();
Set<String> authors = new HashSet<String>(this.authorsIds);
for (String entityId : authors) {
try {
userDao.getById(entityId);
} catch (EntityDoesNotExistException ex) {
LOG.info("Repairing dead author reference");
repairDeadAuthorReference(entityId);
}
}
if (this.releasesIds == null) this.releasesIds = new java.util.HashSet<String>();
Set<String> releases = new HashSet<String>(this.releasesIds);
for (String entityId : releases) {
try {
releaseDao.getById(entityId);
} catch (EntityDoesNotExistException ex) {
LOG.info("Repairing dead release reference");
repairDeadReleaseReference(entityId);
}
}
}
// -----------------------------------------------------------
// - dependencies
// -----------------------------------------------------------
static scrum.server.project.ProjectDao projectDao;
public static final void setProjectDao(scrum.server.project.ProjectDao projectDao) {
GBlogEntry.projectDao = projectDao;
}
static scrum.server.release.ReleaseDao releaseDao;
public static final void setReleaseDao(scrum.server.release.ReleaseDao releaseDao) {
GBlogEntry.releaseDao = releaseDao;
}
static BlogEntryDao blogEntryDao;
public static final void setBlogEntryDao(BlogEntryDao blogEntryDao) {
GBlogEntry.blogEntryDao = blogEntryDao;
}
}