Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
void handleDir(myDir, domsParentObject) {
  thisDirObject = new Object(identifier = myDir.getPath());
  domsParentObject.addHasPart(object = thisDirObject);

  handleFiles(myDir.getFiles(), thisDirObject);
 
  for(dir in myDir.getDirectories()) {

    handleDir(dir, thisDirObject);
  }
}

void handleFiles(myFiles, dirParentObject) {
  List<List> groupedByPrefix = groupByPrefix(myFiles) //groupedByPrefix is a set of groups. A group is a prefix and a set of files
  if (groupedByPrefix.size == 1){ //There is only one group, so add them as datastreams to the current
      group = groupedByPrefix.get(0)
      for (file in group){
      	handleFile(file, dirParentObject);
	  }
  } else { // there is more than one group, so introduce sub directories
    for(List group in groupedByPrefix) {
      addHasPartaddPart(group, dirParentObject);
    }
  }
}

void handleFile(file, parentObject) {
  if(isDataFile(file)) {
    addFile(file, parentObject);
  } else {
    addDataStream(file, parentObject);
  }
}

void addHasPartaddPart(fileGroup, dirParentObject) {
  thisPartObject = new Object(identifier = fileGroup.getPrefix());
  dirParentObject.addHasPart(object = thisPartObject);
  
  for(file in fileGroup) {
    handleFile(file, thisPartObject);
  }
}
 
void addFile(file, parentObject) {
   thisFileObject = new Object(identifier = file.getName);
   parentObject.addHasFile(object = thisFileObject);
}