001package org.biopax.paxtools.model.level3; 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 extends Level3Element, Observable, Named 014{ 015 // --------------------- ACCESORS and MUTATORS--------------------- 016 017 // Property AVAILABILITY 018 019 /** 020 * The contents of this set can be modified but semantic consistency is not 021 * guaranteed. Using {@link #addAvailability(String)} and {@link 022 * #removeAvailability(String)} is recommended. 023 * @return a set of strings describing the availability of this data (e.g. a 024 * copyright statement). 025 */ 026 public Set<String> getAvailability(); 027 028 029 /** 030 * This method adds the given text to the avaialability set. 031 * @param availability a string describing the availability of this data 032 * (e.g. a copyright statement). 033 */ 034 public void addAvailability(String availability); 035 036 /** 037 * This method removes the given text from the avaialability set. 038 * @param availability a string describing the availability of this data 039 * (e.g. a copyright statement). 040 */ 041 public void removeAvailability(String availability); 042 043 044 // Property DATA-SOURCE 045 046 /** 047 * This method returns a set of free text descriptions of the source of this 048 * data, e.g. a database or person name. This property should be used to 049 * describe the source of the data. This is meant to be used by databases that 050 * export their data to the BioPAX format or by systems that are integrating 051 * data from multiple sources. The granularity of use (specifying the data 052 * source in many or few instances) is up to the user. It is intended that 053 * this property report the last data source, not all data sources that the 054 * data has passed through from creation. 055 * 056 * The contents of this set can be modified but semantic consistency is not 057 * guaranteed. Using {@link #addDataSource(Provenance)} and {@link #removeDataSource(Provenance)} is 058 * recommended. 059 * @return a set of free text descriptions of the source of this data, e.g. a 060 * database or person name. 061 */ 062 public Set<Provenance> getDataSource(); 063 064 065 /** 066 * This method adds the given value to the DATA_SOURCE set. 067 * @param dataSource a free text description of the source of this data, 068 * e.g. a database or person name. 069 */ 070 public void addDataSource(Provenance dataSource); 071 072 /** 073 * This method removes the given value from the DATA_SOURCE set. 074 * @param dataSource a free text description of the source of this data, 075 * e.g. a database or person name. 076 */ 077 public void removeDataSource(Provenance dataSource); 078 079 080 081 082 /** 083 * This method returns the interaction that this entity/pep takes part in. 084 * Contents of this set should not be modified. 085 * Reverse of {@link org.biopax.paxtools.model.level3.Interaction#getParticipant()} 086 * @return a set of interactions that 087 */ 088 public Set<Interaction> getParticipantOf(); 089 090}