# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# IMPORTS
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
importFrom("R.methodsS3", "setMethodS3")
importFrom("R.methodsS3", "throw")
import("R.oo")
# importFrom("R.utils", "cat")
import("R.utils")

importFrom("digest", "digest")

importFrom("stats", "reorder") # generic function
importFrom("utils", "head") # generic function
importFrom("utils", "tail") # generic function


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# EXPORTS
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Object that must exported explicitly
export(.conflicts.OK) 

# Export all public methods, that is, those without a preceeding dot
# in their names.
exportPattern("^[^\\.]")


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# DECLARE
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
S3method("dropRootPathTags", "default")
S3method("fullname", "default")
S3method("name", "default")
S3method("tags", "default")
S3method("dropTags", "default")
S3method("readTableHeader", "default")

S3method("getTags", "Arguments")

S3method("nbrOfColumns", "ColumnNamesInterface")
S3method("getDefaultColumnNames", "ColumnNamesInterface")
S3method("getColumnNames", "ColumnNamesInterface")
S3method("setColumnNames", "ColumnNamesInterface")
S3method("clearListOfColumnNamesTranslators", "ColumnNamesInterface")
S3method("getListOfColumnNamesTranslators", "ColumnNamesInterface")
S3method("setListOfColumnNamesTranslators", "ColumnNamesInterface")
S3method("clearColumnNamesTranslator", "ColumnNamesInterface")
S3method("getColumnNamesTranslator", "ColumnNamesInterface")
S3method("translateColumnNames", "ColumnNamesInterface")
S3method("appendColumnNamesTranslatorByNULL", "ColumnNamesInterface")
S3method("appendColumnNamesTranslatorBylist", "ColumnNamesInterface")
S3method("appendColumnNamesTranslatorBycharacter", "ColumnNamesInterface")
S3method("appendColumnNamesTranslatorByfunction", "ColumnNamesInterface")
S3method("appendColumnNamesTranslator", "ColumnNamesInterface")
S3method("setColumnNamesTranslator", "ColumnNamesInterface")
S3method("updateColumnNames", "ColumnNamesInterface")

S3method("getDefaultFullName", "FullNameInterface")
S3method("getFullName", "FullNameInterface")
S3method("setFullName", "FullNameInterface")
S3method("getName", "FullNameInterface")
S3method("setName", "FullNameInterface")
S3method("getTags", "FullNameInterface")
S3method("setTags", "FullNameInterface")
S3method("hasTags", "FullNameInterface")
S3method("hasTag", "FullNameInterface")
S3method("clearListOfFullNameTranslators", "FullNameInterface")
S3method("clearFullNameTranslator", "FullNameInterface")
S3method("getFullNameTranslator", "FullNameInterface")
S3method("resetFullName", "FullNameInterface")
S3method("translateFullName", "FullNameInterface")
S3method("getListOfFullNameTranslators", "FullNameInterface")
S3method("setListOfFullNameTranslators", "FullNameInterface")
S3method("appendFullNameTranslatorByNULL", "FullNameInterface")
S3method("appendFullNameTranslatorBylist", "FullNameInterface")
S3method("appendFullNameTranslator", "FullNameInterface")
S3method("updateFullName", "FullNameInterface")
S3method("appendFullNameTranslatorBycharacter", "FullNameInterface")
S3method("appendFullNameTranslatorByfunction", "FullNameInterface")
S3method("appendFullNameTranslatorBydata.frame", "FullNameInterface")
S3method("appendFullNameTranslatorByTabularTextFile", "FullNameInterface")
S3method("appendFullNameTranslatorByTabularTextFileSet", "FullNameInterface")

S3method("clone", "GenericDataFile")
S3method("equals", "GenericDataFile")
S3method("as.character", "GenericDataFile")
S3method("getPathname", "GenericDataFile")
S3method("getPath", "GenericDataFile")
S3method("getFilename", "GenericDataFile")
S3method("getDefaultFullName", "GenericDataFile")
S3method("getFilenameExtension", "GenericDataFile")
S3method("getOutputExtension", "GenericDataFile")
S3method("getExtensionPattern", "GenericDataFile")
S3method("setExtensionPattern", "GenericDataFile")
S3method("getExtension", "GenericDataFile")
S3method("getFileType", "GenericDataFile")
S3method("isFile", "GenericDataFile")
S3method("validate", "GenericDataFile")
S3method("getFileSize", "GenericDataFile")
S3method("getCreatedOn", "GenericDataFile")
S3method("getLastModifiedOn", "GenericDataFile")
S3method("getLastAccessedOn", "GenericDataFile")
S3method("hasBeenModified", "GenericDataFile")
S3method("fromFile", "GenericDataFile")
S3method("copyTo", "GenericDataFile")
S3method("renameTo", "GenericDataFile")
S3method("getChecksum", "GenericDataFile")
S3method("writeChecksum", "GenericDataFile")
S3method("readChecksum", "GenericDataFile")
S3method("compareChecksum", "GenericDataFile")
S3method("validateChecksum", "GenericDataFile")
S3method("gzip", "GenericDataFile")
S3method("gunzip", "GenericDataFile")
S3method("isGzipped", "GenericDataFile")
S3method("renameToUpperCaseExt", "GenericDataFile")
S3method("getAttributes", "GenericDataFile")
S3method("setAttributes", "GenericDataFile")
S3method("getAttribute", "GenericDataFile")
S3method("setAttribute", "GenericDataFile")
S3method("testAttributes", "GenericDataFile")
S3method("setAttributesBy", "GenericDataFile")
S3method("setAttributesByTags", "GenericDataFile")

S3method("as.character", "GenericDataFileSet")
S3method("clearCache", "GenericDataFileSet")
S3method("clone", "GenericDataFileSet")
S3method("getFileClass", "GenericDataFileSet")
S3method("validate", "GenericDataFileSet")
S3method("getFileSize", "GenericDataFileSet")
S3method("getPath", "GenericDataFileSet")
S3method("getDepth", "GenericDataFileSet")
S3method("setDepth", "GenericDataFileSet")
S3method("getSubdirs", "GenericDataFileSet")
S3method("length", "GenericDataFileSet")
S3method("nbrOfFiles", "GenericDataFileSet") # TO DEPRECATE
S3method("reorder", "GenericDataFileSet")
S3method("sortBy", "GenericDataFileSet")
S3method("getNames", "GenericDataFileSet")
S3method("getFullNames", "GenericDataFileSet")
S3method("indexOf", "GenericDataFileSet")
S3method("getPathnames", "GenericDataFileSet")
S3method("seq", "GenericDataFileSet")  # TO DEPRECATE
S3method("as.list", "GenericDataFileSet")
S3method("getFile", "GenericDataFileSet")
S3method("getFiles", "GenericDataFileSet")
S3method("appendFiles", "GenericDataFileSet")
S3method("append", "GenericDataFileSet")
S3method("extract", "GenericDataFileSet")
S3method("byPath", "GenericDataFileSet")
S3method("copyTo", "GenericDataFileSet")
S3method("findByName", "GenericDataFileSet")
S3method("byName", "GenericDataFileSet")
S3method("hasFile", "GenericDataFileSet")
S3method("equals", "GenericDataFileSet")
S3method("update2", "GenericDataFileSet")
S3method("getDefaultFullName", "GenericDataFileSet")
S3method("updateFullName", "GenericDataFileSet")
S3method("updateFullNames", "GenericDataFileSet")
S3method("clearFullNamesTranslator", "GenericDataFileSet")
S3method("resetFullNames", "GenericDataFileSet")
S3method("appendFullNamesTranslatorByNULL", "GenericDataFileSet")
S3method("appendFullNamesTranslatorByfunction", "GenericDataFileSet")
S3method("appendFullNamesTranslatorBydata.frame", "GenericDataFileSet")
S3method("appendFullNamesTranslatorByTabularTextFile", "GenericDataFileSet")
S3method("appendFullNamesTranslatorByTabularTextFileSet", "GenericDataFileSet")
S3method("appendFullNamesTranslatorBylist", "GenericDataFileSet")
S3method("appendFullNamesTranslator", "GenericDataFileSet")
S3method("setFullNamesTranslator", "GenericDataFileSet")
S3method("getChecksumObjects", "GenericDataFileSet")
S3method("getChecksum", "GenericDataFileSet")

S3method("assertDuplicates", "GenericDataFileSetList")
S3method("as.GenericDataFileSetList", "GenericDataFileSetList")
S3method("as.character", "GenericDataFileSetList")
S3method("clone", "GenericDataFileSetList")
S3method("getAsteriskTags", "GenericDataFileSetList")
S3method("setTags", "GenericDataFileSetList")
S3method("getTags", "GenericDataFileSetList")
S3method("getDefaultFullName", "GenericDataFileSetList")
S3method("as.list", "GenericDataFileSetList")
S3method("getSets", "GenericDataFileSetList")
S3method("getSet", "GenericDataFileSetList")
S3method("nbrOfSets", "GenericDataFileSetList")
S3method("getFileListClass", "GenericDataFileSetList")
S3method("getFullNames", "GenericDataFileSetList")
S3method("getNames", "GenericDataFileSetList")
S3method("length", "GenericDataFileSetList")
S3method("nbrOfFiles", "GenericDataFileSetList")  # TO DEPRECATE
S3method("indexOf", "GenericDataFileSetList")
S3method("extract", "GenericDataFileSetList")
S3method("as.data.frame", "GenericDataFileSetList")
S3method("getFileList", "GenericDataFileSetList")

S3method("as.character", "GenericTabularFile")
S3method("verify", "GenericTabularFile")
S3method("nbrOfRows", "GenericTabularFile")
S3method("dim", "GenericTabularFile")
S3method("readDataFrame", "GenericTabularFile")
S3method("head", "GenericTabularFile")
S3method("tail", "GenericTabularFile")
S3method("readColumns", "GenericTabularFile")
S3method("extractMatrix", "GenericTabularFile")
S3method("writeColumnsToFiles", "GenericTabularFile")
S3method("[", "GenericTabularFile")

S3method("as.character", "TabularTextFile")
S3method("verify", "TabularTextFile")
S3method("getCommentChar", "TabularTextFile")
S3method("setCommentChar", "TabularTextFile")
S3method("readColumnNames", "TabularTextFile")
S3method("hasColumnHeader", "TabularTextFile")
S3method("getDefaultColumnNames", "TabularTextFile")
S3method("getDefaultColumnClasses", "TabularTextFile")
S3method("getDefaultColumnClassPatterns", "TabularTextFile")
S3method("getHeader", "TabularTextFile")
S3method("readRawHeader", "TabularTextFile")
S3method("getReadArguments", "TabularTextFile")
S3method("readDataFrame", "TabularTextFile")
S3method("readColumns", "TabularTextFile")
S3method("nbrOfRows", "TabularTextFile")
S3method("nbrOfLines", "TabularTextFile")
S3method("readLines", "TabularTextFile")

S3method("readDataFrame", "TabularTextFileSet")
