Mercurial > hg > ismi-richfaces
view src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/AliasEntityList.java @ 112:59f26a5ef2b3
AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
author | casties |
---|---|
date | Tue, 13 Dec 2016 19:04:45 +0100 |
parents | |
children |
line wrap: on
line source
package de.mpiwg.itgroup.ismi.util.guiComponents; import java.util.HashMap; import java.util.List; import org.mpi.openmind.repository.bo.Attribute; import org.mpi.openmind.repository.bo.Entity; import de.mpiwg.itgroup.ismi.auxObjects.AliasListenerObject; /** * EntityList that also takes ALIASes related to the Entities. * * @author casties * */ public class AliasEntityList extends EntityList { private static final long serialVersionUID = 6671675804993282617L; protected String aliasRelName; protected String entityClass; /** * EntityList that searches in Entity Attributes and also in ALIASes connected by a given Relation. * * Uses relation ALIAS - aliasRelName -> ENTITY (usually "is_alias_name_of"). * * @param oc * @param attName * @param alistRelName * @param useCalendar */ public AliasEntityList(String oc, String attName, String aliasRelName, boolean useCalendar) { this.aliasRelName = aliasRelName; this.entityClass = oc; this.lo = new AliasListenerObject(oc, attName, aliasRelName); this.useCalendar = useCalendar; this.calendarMap = new HashMap<Long, Calendar>(); } /* (non-Javadoc) * @see de.mpiwg.itgroup.ismi.util.guiComponents.EntityList#add(org.mpi.openmind.repository.bo.Entity, org.mpi.openmind.repository.bo.Attribute) */ @Override public void add(Entity e, Attribute calendarAtt) { // check if we add an alias if (e.getObjectClass().equals(ALIAS)) { // get original object List<Entity> ents = getWrapper().getTargetsForSourceRelation(e, aliasRelName, entityClass, 1); Entity ent = ents.get(0); if (entities.contains(ent)) { // original is in the List -- remove it super.remove(ent.getId()); } } else { // get alias List<Entity> ents = getWrapper().getSourcesForTargetRelation(e, aliasRelName, ALIAS, 0); if (!ents.isEmpty()) { for (Entity ent : ents) { if (entities.contains(ent)) { // alias is in the List -- leave it return; } } } } super.add(e, calendarAtt); } }