package com.clearlyspam23.GLE.basic.layers.tile; import java.io.Serializable; import java.util.List; import com.clearlyspam23.GLE.Nameable; public abstract class TilesetTreeNode implements Nameable, Serializable{ /** * */ private static final long serialVersionUID = 1L; public static enum Type{ TILE, GROUP } private TilesetGroupNode parent; public TilesetTreeNode(){ } public TilesetTreeNode(TilesetGroupNode parent){ this.parent = parent; } public abstract String getName(); public abstract void setName(String name); public abstract Type getType(); public TilesetTileNode getAsTiles(){ return (TilesetTileNode) this; } public TilesetGroupNode getAsGroup(){ return (TilesetGroupNode) this; } public final TilesetGroupNode getParent(){ return parent; } public final void setParent(TilesetGroupNode parent){ if(this.parent!=null&&this.parent!=parent){ this.parent.getChildren().remove(this); } this.parent = parent; if(parent!=null&&!parent.getChildren().contains(this)) parent.addNode(this); } public abstract List<TilesetHandle> getTilesets(); public abstract TilesetTreeNode cloneAsBasic(); }