package org.infoobject.magicmap.node.model; import net.sf.magicmap.client.model.node.Node; import org.infoobject.core.agent.domain.Agent; import org.infoobject.core.infoobject.domain.*; import org.infoobject.core.util.Digest; import java.util.ArrayList; import java.util.List; /** * <p> * Class InformationObjectNode ZUSAMMENFASSUNG * </p> * <p> * DETAILS * </p> * * @author Jan Friderici * Date: 09.08.2008 * Time: 17:59:01 */ public class InformationObjectNode extends Node implements InformationObject { public static final int NODE_TYPE =-6762; private final InformationObject information; public InformationObjectNode(InformationObjectNodeModel iNodeModel, InformationObject information) { super(iNodeModel); this.information = information; setName(createInformationObjectId(information.getUri())); } @Override public String getDisplayName() { if (information.getMetadata() != null && information.getMetadata().getTitle() != null) { return information.getMetadata().getTitle(); } else { return information.getUri(); } } /** * * @return */ public InformationObject getInformationObject() { return this; } public ArrayList<? extends Node> getNeighbors() { return new ArrayList<Node>(); } @Override public boolean isPhysical() { return false; } public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof InformationObject)) return false; InformationObject that = (InformationObject) o; if (getUri() != null ? !getUri().equals(that.getUri()) : that.getUri() != null) return false; return true; } public int hashCode() { int result = super.hashCode(); result = 31 * result + (information != null ? information.hashCode() : 0); return result; } /** * * @return */ public InformationObjectNodeModel getModel() { return (InformationObjectNodeModel) super.getModel(); } public int getType() { return NODE_TYPE; } public static String createInformationObjectId(String uri) { return "nfo:" + Digest.sha1(uri); } public String getUri() { return information.getUri(); } public Metadata getMetadata() { return information.getMetadata(); } public boolean setMetadata(Metadata metadata) { return information.setMetadata(metadata); } public TaggingPost addTaggPost(Tag tag, Agent agent, boolean positive) { return information.addTaggPost(tag, agent, positive); } public List<ObjectLink> getObjectLinks() { return information.getObjectLinks(); } public ObjectLinkPost addObjectLink(ObjectName name, Agent agent, String type) { return information.addObjectLink(name, agent, type); } public ArrayList<ObjectName> getObjectNames() { return information.getObjectNames(); } public ArrayList<Tag> getTags() { return information.getTags(); } public List<Tagging> getTaggings() { return information.getTaggings(); } /** * * @param agent * @return */ public List<Tagging> getTaggings(Agent agent) { return information.getTaggings(agent); } }