Package: R.filesets
===================

Version: 0.8.2 [2010-05-26]
o Now GenericDataFileSet$findByName(..., mustExist=FALSE) do no longer
  throw an exception even if there is no existing root path.
o Added argument 'firstOnly=TRUE' to findByName() for GenericDataFileSet.
o Added appendFullNameTranslatorBy...() methods to the
  FullNameInterface class for data frames, TabularTextFile:s, and
  TabularTextFileSet:s.


Version: 0.8.1 [2010-04-22]
o Added "NA" to the default 'na.strings' returned by getReadArguments()
  for TabularTextFile.


Version: 0.8.0 [2010-02-22]
o Submitted to CRAN.  No changes since v0.7.6.


Version: 0.7.6 [2010-02-13]
o Added argument '.onUnknownArgs' to GenericDataFile() and 
  GenericDataFileSet().  As before, the default is to throw an
  exception if there are unknown arguments.  However, in certain 
  case it is useful to allow (and ignore) "stray" arguments.


Version: 0.7.5 [2010-02-07]
o BUG FIX: indexOf() of GenericDataFileSet and GenericDataFileSetList
  did not handle names with regular expression symbols '+' and '*'. 
  Thanks to Randy Gobbel for the initial error report.


Version: 0.7.4 [2010-01-31]
o DOCUMENTATION: Added Rd help paged to more methods for classes
  GenericDataFile and GenericDataFileSet. 
o DEPRECATION: Deprecated static fromFiles() of GenericDataSet.  
  Use byPath() instead.


Version: 0.7.3 [2010-01-24]
o ROBUSTNESS: If argument 'files' is logical, then extract() of
  GenericDataFileSet and GenericDataFileSetList now asserts that the
  length of 'files' matches the number of available files.


Version: 0.7.2 [2010-01-12]
o Added some example data files under exData/.
o BUG FIX: readColumns(..., column=<string>) on a TabularTextFile 
  would give "Error ... object 'columnNames' not found".


Version: 0.7.1 [2010-01-02]
o Now setExtensionPattern(..., pattern=NULL) of GenericDataFile works.
o Added argument 'default="\\.([^.]+)$"' to getExtensionPattern() 
  of GenericDataFile.  Before the default value was hardcoded
  inside this function.


Version: 0.7.0 [2010-01-02]
o Added protected as.data.frame() to GenericDataFileSetList.
o Now GenericDataFile(NA, mustExist=FALSE) is a valid object.  
  Made all methods aware of such missing files.
o Now extract(ds, c(1,2,NA,4), onMissing="NA") returns a valid
  GenericDataFileSet where missing files are returned as missing
  GenericDataFile:s.
o Added na.rm=TRUE to all getTags() so that it returns NULL in case
  the file is missing.
o copyTo() of GenericDataFileSet quietly ignores missing files.
o Added Rd help for indexOf() of GenericDataFileSet.
o ROBUSTNESS: Using new Arguments$getInstanceOf() were possible.
o ROBUSTNESS: Now all index arguments are validated correctly 
  using the new 'max' argument of Arguments$getIndices().  Before
  the case where "max == 0" was not handled correctly.
o BUG FIX: Changed the default to 'parent=0' for getDefaultFullName() 
  of GenericDataFileSet to be consistent with the documentation.
o BUG FIX: Now GenericDataFile(pathname) throws an error if 'pathname'
  is referring to a directory.
o BUG FIX: getPath() and getDefaultFullName() of GenericDataFileSet 
  would return a *logical* instead of *character* value.
o BUG FIX: indexOf(ds, names) of GenericDataFileSet would return a
  *logical* instead of an *integer* vector of NA:s if none of the 
  names existed.


Version: 0.6.5 [2009-10-30]
o ROBUSTIFICATION: Now translateFullName() of FullNameInterface 
  and translateColumnNames() of GenericTabularFile throw an 
  exception if some fullnames were translated into NA.  They
  also assert that no names were dropped or added in the process.
o BUG FIX: After doing append() to a GenericDataFileSet, the
  total file size reported would remain the same.
o BUG FIX: Appending empty data sets using append() of GenericDataFileSet
  would give error Error in this$files[[1]] : subscript out of bounds.


Version: 0.6.4 [2009-10-25]
o Added get- and setExtensionPattern() to FullNameInterface.
o Added getExtension() to GenericDataFile.


Version: 0.6.3 [2009-10-23]
o Added appendFullNameTranslatorBylist() which makes it possible to do
  setup a sequence of fullnames translators fnt1, fnt2, fnt3 by calling
  setFullNameTranslator(..., list(fnt1, fnt2, fnt3)).


Version: 0.6.2 [2009-10-22]
o Added support for having a sequence of fullname translator 
  functions.  These can be added using appendFullNameTranslator().
o Added an example() to FullNameInterface.


Version: 0.6.1 [2009-10-06]
o Added subsetting via [() to TabularTextFile.


Version: 0.6.0 [2009-10-02]
o Added the FullNameInterface, which is the interface class that
  defines what fullnames, names, tags etc are.
o Now setFullName*s*Translator() for GenericDataFileSet dispatches 
  on the 'by' argument.  If that is not possible, it call 
  setFullNameTranslator() for each file in the set (as before).
o CLEAN UP: Renamed fromFiles() to byPath().  For backward 
  compatibility the former calls the latter. 
o CLEAN UP: GenericDataFile and GenericDataFileSet implements
  the FullNameInterface, which mean less redundant code.


Version: 0.5.3 [2009-08-12]
o Now findByName() of GenericDataFileSet follows Windows Shortcut 
  links also for subdirectories.


Version: 0.5.2 [2009-06-08]
o Analogously to the method for a GenericDataFile, the 
  setFullNameTranslator() method for GenericDataFileSet now
  assumes that the fullname translator function accepts also
  argument 'set'.
o Added argument '.fileSetClass' to GenericDataFileSet().


Version: 0.5.1 [2009-05-19]
o A fullname translator function for a GenericDataFile should accept
  any number of arguments.  The first argument will always be 
  (an unnamed) argument containing the name (or names) to be 
  translated.  If the translator is for a GenericDataFile, an
  additional argument 'file' will also be passed.  This allows
  the translator function to for instance read the file header
  and infer the name that way.


Version: 0.5.0 [2009-05-17]
o Extracted several classes and methods from the aroma.core package.
o Created package.
