/** * */ package org.seqcode.gseutils.datastructures; import java.util.*; /** * @author Timothy Danford */ public class TaxonomyEvent extends EventObject { public static final int ELEMENT_ADDED = 0; public static final int ELEMENT_REMOVED = 1; public static final int ELEMENT_CHANGED = 2; public static final int TAXON_ADDED = 3; public static final int TAXON_REMOVED = 4; private LinkedList<String> addr; private Object leafValue; private int type; /** * @param arg0 */ public TaxonomyEvent(Object src, int type, Object leaf) { super(src); addr = new LinkedList<String>(); leafValue = leaf; this.type = type; } public TaxonomyEvent(Object src, TaxonomyEvent te, String a) { super(src); addr = new LinkedList<String>(te.addr); addr.addFirst(a); leafValue = te.leafValue; type = te.type; } public Collection<String> getAddr() { return addr; } public Object getLeaf() { return leafValue; } public int getType() { return type; } public void addAddr(String a) { addr.addFirst(a); } public String removeAddr() { return addr.removeFirst(); } public int getAddrLength() { return addr.size(); } public String toString() { return "(" + type + ":" + getAddrString() + ") --> " + leafValue.toString(); } public String getAddrString() { StringBuilder sb = new StringBuilder(); boolean f = true; for(String a : addr) { if(!f) { sb.append(","); } f = false; sb.append(a); } return sb.toString(); } }