001package org.biopax.paxtools.model.level2;
002
003import java.util.Set;
004
005/**
006 * This class represents a discrete biological unit used when describing
007 * pathways. This is the root class for all biological concepts in the ontology,
008 * which include pathways, interactions and physical entities. As the most
009 * abstract class in the ontology, instances of the entity class should never be
010 * created. Instead, more specific classes should be used. Synonyms: thing,
011 * object, bioentity.
012 */
013public interface entity
014        extends Level2Element, XReferrable, InteractionParticipant
015{
016// -------------------------- OTHER METHODS --------------------------
017
018        /**
019         * This method adds the given text to the avaialability set.
020         *
021         * @param AVAILABILITY_TEXT a string describing the availability of this data
022         *                          (e.g. a copyright statement).
023         */
024        public void addAVAILABILITY(String AVAILABILITY_TEXT);
025
026        /**
027         * This method adds the given value to the DATA_SOURCE set.
028         *
029         * @param DATA_SOURCE_INST a free text description of the source of this data,
030         *                         e.g. a database or person name.
031         */
032        public void addDATA_SOURCE(dataSource DATA_SOURCE_INST);
033
034        /**
035         * This method adds the given value to the SYNONYMS set.
036         *
037         * @param SYNONYMS_TEXT a new name to be added
038         */
039        public void addSYNONYMS(String SYNONYMS_TEXT);
040// --------------------- ACCESORS and MUTATORS---------------------
041
042        /**
043         * The contents of this set can be modified but semantic consistency is not
044         * guaranteed. Using {@link #addAVAILABILITY(String)} and {@link
045         * #removeAVAILABILITY(String)} is recommended.
046         *
047         * @return a set of  strings describing the availability of this data (e.g. a
048         *         copyright statement).
049         */
050
051        public Set<String> getAVAILABILITY();
052
053
054        /**
055         * This method returns a set of free text descriptions of the source of this
056         * data, e.g. a database or person name. This property should be used to
057         * describe the source of the data. This is meant to be used by databases that
058         * export their data to the BioPAX format or by systems that are integrating
059         * data from multiple sources. The granularity of use (specifying the data
060         * source in many or few instances) is up to the user. It is intended that this
061         * property report the last data source, not all data sources that the data has
062         * passed through from creation.
063         *
064         * The contents of this set can be modified but semantic consistency is not
065         * guaranteed. Using {@link #addDATA_SOURCE} and {@link #removeDATA_SOURCE} is
066         * recommended.
067         *
068         * @return a set of free text descriptions of the source of this data, e.g. a
069         *         database or person name.
070         */
071        public Set<dataSource> getDATA_SOURCE();
072
073
074        /**
075         * This method returns the preferred full name for this entity.
076         *
077         * @return preferred full name for this entity
078         */
079        public String getNAME();
080
081        /**
082         * This method sets an abbreviated name for this entity, preferably a name that
083         * is short enough to be used in a visualization application to label a
084         * graphical element that represents this entity. If no short name is
085         * available, an xref may be used for this purpose by the visualization
086         * application.
087         *
088         * @return an abbreviated name suitable for display.
089         */
090        public String getSHORT_NAME();
091
092        /**
093         * The contents of this set can be modified but semantic consistency is not
094         * guaranteed. Using {@link #addSYNONYMS} and {@link #removeSYNONYMS} is
095         * recommended.
096         *
097         * @return a set of synonyms for the name of this entity. This should include
098         *         the values of the NAME and SHORT-NAME property so that it is easy to
099         *         find all known names in one place.
100         */
101        public Set<String> getSYNONYMS();
102
103        /**
104         * This method removes the given text from the avaialability set.
105         *
106         * @param AVAILABILITY_TEXT a string describing the availability of this data
107         *                          (e.g. a copyright statement).
108         */
109        public void removeAVAILABILITY(String AVAILABILITY_TEXT);
110
111        /**
112         * This method removes the given value from the DATA_SOURCE set.
113         *
114         * @param DATA_SOURCE_INST a free text description of the source of this data,
115         *                         e.g. a database or person name.
116         */
117        public void removeDATA_SOURCE(dataSource DATA_SOURCE_INST);
118
119        /**
120         * This method removes the given value from the SYNONYMS set.
121         *
122         * @param SYNONYMS_TEXT a new name to be added
123         */
124        public void removeSYNONYMS(String SYNONYMS_TEXT);
125
126        /**
127         * This method overrides existing set with the new set. If you want to append
128         * to the existing set, use {@link #addAVAILABILITY} instead.
129         *
130         * @param AVAILABILITY_TEXT a set of strings describing the availability of
131         *                          this data (e.g. a copyright statement).
132         */
133        public void setAVAILABILITY(Set<String> AVAILABILITY_TEXT);
134
135        /**
136         * This method overrides existing set with the new set. If you want to append
137         * to the existing set, use {@link #addDATA_SOURCE} instead.
138         *
139         * @param DATA_SOURCE a set of free text descriptions of the source of this
140         *                    data, e.g. a database or person name.
141         */
142        public void setDATA_SOURCE(Set<dataSource> DATA_SOURCE);
143
144        /**
145         * This method sets the preferred full name for this entity to the given
146         * value.
147         *
148         * @param NAME The preferred full name for this entity.
149         */
150        public void setNAME(String NAME);
151
152        /**
153         * An abbreviated name for this entity, preferably a name that is short enough
154         * to be used in a visualization application to label a graphical element that
155         * represents this entity. If no short name is available, an xref may be used
156         * for this purpose by the visualization application.
157         *
158         * @param SHORT_NAME new short name
159         */
160        public void setSHORT_NAME(String SHORT_NAME);
161
162        /**
163         * This method overrides existing set with the new set. If you want to append
164         * to the existing set, use {@link #addSYNONYMS} instead.
165         *
166         * @param SYNONYMS a set of names for this entity.
167         */
168        public void setSYNONYMS(Set<String> SYNONYMS);
169}