/* PositionedTag.java created 2007-10-15 * */ package org.signalml.app.view.signal; import org.signalml.plugin.export.signal.Tag; import org.signalml.plugin.export.view.ExportedPositionedTag; /** PositionedTag * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class PositionedTag implements Comparable<PositionedTag>, ExportedPositionedTag { Tag tag; int tagPositionIndex; public PositionedTag(Tag tag, int tagPositionIndex) { this.tag = tag; this.tagPositionIndex = tagPositionIndex; } public PositionedTag(ExportedPositionedTag positionedTag) { Tag tag; if (positionedTag.getTag() instanceof Tag) { tag = (Tag) positionedTag.getTag(); } else { tag = new Tag(positionedTag.getTag()); } this.tag = tag; this.tagPositionIndex = positionedTag.getTagPositionIndex(); } @Override public Tag getTag() { return tag; } @Override public int getTagPositionIndex() { return tagPositionIndex; } @Override public boolean equals(Object obj) { if (obj instanceof PositionedTag) { PositionedTag otherTag = (PositionedTag) obj; return (otherTag.tagPositionIndex == this.tagPositionIndex) && otherTag.tag.equals(this.tag); } return false; } @Override public int compareTo(PositionedTag o) { if (tagPositionIndex != o.tagPositionIndex) { return tagPositionIndex - o.tagPositionIndex; } return tag.compareTo(o.tag); } /* (non-Javadoc) * @see org.signalml.plugin.export.view.ExportedPositionedTag#compareTo(org.signalml.plugin.export.view.ExportedPositionedTag) */ @Override public int compareTo(ExportedPositionedTag o) { if (getTagPositionIndex() != o.getTagPositionIndex()) { return getTagPositionIndex() - o.getTagPositionIndex(); } return getTag().compareTo(o.getTag()); } }