source: trunk/source/visualization/HepRep/include/HEPREP/HepRepType.h @ 834

Last change on this file since 834 was 834, checked in by garnier, 16 years ago

import all except CVS

File size: 2.8 KB
Line 
1// -*- C++ -*-
2// AID-GENERATED
3// =========================================================================
4// This class was generated by AID - Abstract Interface Definition         
5// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it.
6// =========================================================================
7#ifndef HEPREP_HEPREPTYPE_H
8#define HEPREP_HEPREPTYPE_H 1
9
10// Copyright 2000-2005, FreeHEP.
11
12#include <string>
13#include <vector>
14
15#include "HEPREP/HepRepDefinition.h"
16
17namespace HEPREP {
18
19/**
20 * HepRepType interface.
21 *
22 * @author Mark Donszelmann
23 */
24class HepRepType : virtual public HepRepDefinition {
25
26public: 
27    /// Destructor.
28    virtual ~HepRepType() { /* nop */; }
29
30    /**
31     * Adds a sub-type to this type.
32     *
33     * @param type sub-type to be added.
34     */
35    virtual void addType(HepRepType * type) = 0;
36
37    /**
38     * Returns the name of this type.
39     * This is the full name if one uses flat-types, and the node name if one
40     * uses hierarchical typenames. It is the name supplied at construction of the type.
41     *
42     * @return name of type.
43     * @see #getFullName()
44     */
45    virtual std::string getName() = 0;
46
47    /**
48     * Returns the full name of this type.
49     * The full name is constructed from the root of the typeTree (without the typeTreeName)
50     * by concatenating all the node names separated by slashes "/". For example:
51     * Geometry/InnerDetector/Sector24/Wire20
52     *
53     * @return full name of type.
54     * @see #getName()
55     */
56    virtual std::string getFullName() = 0;
57
58    /**
59     * Returns the description of this type.
60     *
61     * @return description of type.
62     */
63    virtual std::string getDescription() = 0;
64
65    /**
66     * Sets the description of this type.
67     *
68     * @param infoURL
69     */
70    virtual void setDescription(std::string description) = 0;
71
72    /**
73     * Returns the information URL of this type.
74     *
75     * @return info URL of type.
76     */
77    virtual std::string getInfoURL() = 0;
78
79    /**
80     * Sets the information URL of this type.
81     *
82     * @param infoURL
83     */
84    virtual void setInfoURL(std::string infoURL) = 0;
85
86    /**
87     * Returns the parent of this type.
88     *
89     * @return parent of type, or null if top-level.
90     */
91    virtual HepRepType * getSuperType() = 0;
92
93    /**
94     * Returns a collection of all the sub-types of this type.
95     *
96     * @return collection of HepRepTypes.
97     */
98    virtual std::vector<HepRepType *>  getTypeList() = 0;
99
100    /**
101     * Returns a deep copy of this type.
102     *
103     * @param parent to which this copy is added.
104     * @return copy of this type.
105     */
106    virtual HepRepType * copy(HepRepType * parent) = 0;
107}; // class
108} // namespace HEPREP
109#endif /* ifndef HEPREP_HEPREPTYPE_H */
Note: See TracBrowser for help on using the repository browser.