Mercurial > hg > ismi-richfaces
view src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/AliasEntityList.java @ 173:aa564b1b5e1f public_by_author
publicByAuthor feature ui for selecting texts ready.
actual changing of public state not yet implemented.
author | Robert Casties <casties@mpiwg-berlin.mpg.de> |
---|---|
date | Wed, 06 Jun 2018 21:01:05 +0200 |
parents | 59f26a5ef2b3 |
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); } }