// AID-GENERATED
// =========================================================================
// This class was generated by AID - Abstract Interface Definition
// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it.
// =========================================================================
// Copyright 2000-2005, FreeHEP.
package hep.graphics.heprep;
import java.util.List;
import java.util.Set;
/**
* The HepRep interface.
*
* Any of these methods may throw a UnsupportedOperationException in Java.
*
* @author Mark Donszelmann
*/
public interface HepRep {
/**
* Add a layer to the list of layers in this heprep.
* The layer is added to the back of the list.
*
* @param layer name of layer to be added to the back of the list.
*/
public void addLayer(String layer);
/**
* Returns the list of layers.
*
* @return the known layer names, in the order back-to-front.
*/
public List/*<String>*/ getLayerOrder();
/**
* Add a typetree to this heprep.
*
* @param typeTree to be added.
*/
public void addTypeTree(HepRepTypeTree typeTree);
/**
* Remove a typetree from this heprep.
*
* @param typeTree to be removed.
*/
public void removeTypeTree(HepRepTypeTree typeTree);
/**
* Returns the collection of all typetrees of this heprep.
*
* @deprecated, use getTypeTreeList()
* @return collection of HepRepTypeTrees.
*/
Set/*<HepRepTypeTree>*/ getTypeTrees();
/**
* Returns the collection of all typetrees of this heprep.
*
* @return collection of HepRepTypeTrees.
*/
public List/*<HepRepTypeTree>*/ getTypeTreeList();
/**
* Returns a named and versioned typetree.
*
* @param name name of the typetree.
* @param version version of the typetree.
* @return named and versioned HepRepTypeTree.
*/
public HepRepTypeTree getTypeTree(String name, String version);
/**
* Adds an instancetree to this heprep.
*
* @param instanceTree to be added.
*/
public void addInstanceTree(HepRepInstanceTree instanceTree);
/**
* Overlays an instancetree to this heprep, overriding attributes and adding children.
*
* @param instanceTree to be overlaid.
*/
public void overlayInstanceTree(HepRepInstanceTree instanceTree);
/**
* Remove an instanectree from this heprep.
*
* @param instanceTree to be removed.
*/
public void removeInstanceTree(HepRepInstanceTree instanceTree);
/**
* Returns a collection of instancetrees.
*
* @deprecated, use getInstaceTreeList()
* @return collection of HepRepInstanceTrees.
*/
Set/*<HepRepInstanceTree>*/ getInstanceTrees();
/**
* Returns a collection of instancetrees.
*
* @return collection of HepRepInstanceTrees.
*/
public List/*<HepRepInstanceTree>*/ getInstanceTreeList();
/**
* Returns a named and versioned instancetree.
* FIXME: doc is incorrect here, should only return TOP of the tree. Filling
* in should be done by getInstances calls.
* <p>
* This tree needs to be added to the heprep afterwards.
*
* @param name name of the instancetree.
* @param version version of the instancetree.
* @return HepRepIntanceTree
*/
public HepRepInstanceTree getInstanceTreeTop(String name, String version);
/**
* Returns a named and versioned instancetree for a list of typenames.
* <p>
* This tree needs to be added to the heprep afterwards.
*
* @param name name of the instancetree.
* @param version version of the instancetree.
* @param typeNames a list of typenames for which we need instancetrees.
* @return HepRepIntanceTree
*/
public HepRepInstanceTree getInstances(String name, String version, String[] typeNames);
/**
* Returns a named and versioned instancetree for a list of typenames
* after executing some action and for specific filters.
*
* This tree needs to be added to the heprep afterwards.
* <p>
* The inversion effect of invertAtts depends on the values of
* GetDrawAtts and GetNonDrawAtts as follows:
* <UL>
* <LI>GetDrawAtts GetNonDrawAtts effect of InvertAtts
* <LI>FALSE FALSE all Attributes specified will be downloaded
* <LI>TRUE FALSE Draw Attributes specified will be omitted, NonDraw Attributes specified will be included
* <LI>FALSE TRUE Draw Attributes specified will be included, NonDraw Attributes specified will be omitted
* <LI>TRUE TRUE all Attributes specified will be omitted
* </UL>
*
* @param name name of the instancetree.
* @param version version of the instancetree.
* @param typeNames a list of typenames for which we need instancetrees.
* @param actions execute this list of actions before returning.
* @param getPoints include the HepRepPoints in the instance tree.
* @param getDrawAtts include the Draw attributes in the instance tree.
* @param getNonDrawAtts include the Non-Draw attributes in the instance tree.
* @param invertAtts list of attributes to be included or not depending on getDrawAtts and getNonDrawAtts.
* @return HepRepIntanceTree
*/
public HepRepInstanceTree getInstancesAfterAction(String name, String version, String[] typeNames, HepRepAction[] actions, boolean getPoints, boolean getDrawAtts, boolean getNonDrawAtts, String[] invertAtts);
/**
* Returns last exception thrown and clears it. Useful for implementations without
* exception handling.
*
* @return last exception and clears it.
*/
public String checkForException();
/**
* Returns a deep copy of the heprep, with all its attached trees, where
* instances are filtered using a HepRepSelectFilter.
*
* @return copy of heprep.
* @throws CloneNotSupportedException in case copy is not possible
*/
public HepRep copy() throws CloneNotSupportedException;
/**
* Returns a deep copy of the heprep, with all its attached trees, where
* instances are filtered using a HepRepSelectFilter.
*
* @param filter to be used for filtering instances.
* @return copy of heprep.
* @throws CloneNotSupportedException in case copy is not possible
*/
public HepRep copy(HepRepSelectFilter filter) throws CloneNotSupportedException;
} // class or interface