import(methods)

importFrom(XML, getNodeSet, free, saveXML,
           xmlAttrs, xmlTreeParse, xmlNode)

importMethodsFrom(AnnotationDbi, revmap, mget, exists, as.list)

importMethodsFrom(Biobase, annotation, description, pubMedIds,
                  updateObject, "annotation<-", "description<-",
                  "pubMedIds<-")

importMethodsFrom(annotate, organism)

importClassesFrom(Biobase, ScalarCharacter, Versions)

importClassesFrom(AnnotationDbi, AnnDbBimap)

importFrom(graph, union)

importClassesFrom(graph, graphNEL)

exportClasses(## GeneIdentifierType
              GeneIdentifierType,
              NullIdentifier, AnnotationIdentifier,
              ENSEMBLIdentifier, EntrezIdentifier, EnzymeIdentifier,
              GenenameIdentifier, RefseqIdentifier, SymbolIdentifier,
              EntrezIdentifier, UnigeneIdentifier,

              ## CollectionType
              CollectionType, NullCollection, ExpressionSetCollection,
              ComputedCollection,
              CollectionIdType, KEGGCollection, OMIMCollection,
              PMIDCollection, ChrCollection, ChrlocCollection,
              MapCollection, PfamCollection, PrositeCollection,
              GOCollection, OBOCollection,
              BroadCollection,

              ## GeneSet
              GeneSet, GeneColorSet,

              ## GeneSetCollection
              GeneSetCollection
              )

exportMethods(show, coerce, details, initialize, intersect, union,
              setdiff, "&", "|", Logic, incidence,

              ## IdentifierType
              mapIdentifiers, annotation, "annotation<-",

              ## CollectionType
              ids,
              bcCategory, bcSubCategory,
              evidenceCode, ontology,
              subsets, goSlim,

              ## GeneSet
              GeneSet,
              
              geneIdType, geneIds, setIdentifier, setName, description,
              longDescription, organism, pubMedIds, urls, contributor,
              setVersion, creationDate, collectionType,

              "geneIdType<-", "geneIds<-", "setIdentifier<-", "setName<-",
              "description<-", "longDescription<-", "organism<-",
              "pubMedIds<-", "urls<-", "contributor<-",
              "setVersion<-", "creationDate<-", "collectionType<-",

              ## GeneColorSet
              GeneColorSet,
              
              phenotype, geneColor, phenotypeColor, coloring,
              
              "phenotype<-", "geneColor<-", "phenotypeColor<-",
              "coloring<-",

              ## GeneSetCollection
              GeneSetCollection, updateObject, names, "[", "[[")

export(## IdentifierType
       NullIdentifier, ENSEMBLIdentifier, EnzymeIdentifier,
       GenenameIdentifier, RefseqIdentifier, SymbolIdentifier,
       UnigeneIdentifier, EntrezIdentifier, AnnotationIdentifier,

       ## CollectionType
       NullCollection, ExpressionSetCollection, ComputedCollection,
       KEGGCollection, OMIMCollection, PMIDCollection, ChrCollection,
       ChrlocCollection, MapCollection, PfamCollection,
       PrositeCollection, GOCollection, OBOCollection, BroadCollection,

       ## XML
       asBroadUri, getBroadSets, toBroadXML,
       getGmt, toGmt,

       ## OBO
       getOBOCollection,

       "geneIds",
       "geneIds<-",
       "ontology"
       )
