// 1- set up base name as the longest part of the name without
// known extensions (beginning from the left)
String baseName = getBaseName(file, metadataService);
// 2- loooking for resources with the same base name
File[] files = file.getParentFile().listFiles();
ReferenceList rl = new ReferenceList(files.length);
rl.setIdentifier(request.getResourceRef());
for (File entry : files) {
try {
if (entry.getName().startsWith(baseName)) {
rl.add(LocalReference.createFileReference(entry));
}
} catch (IOException ioe) {
getLogger().log(Level.WARNING,
"Unable to create file reference", ioe);
}
}
output = rl.getTextRepresentation();
} else {
if ((file != null) && file.exists()) {
if (file.isDirectory()) {
// Return the directory listing
File[] files = file.listFiles();
ReferenceList rl = new ReferenceList(files.length);
rl.setIdentifier(request.getResourceRef());
for (File entry : files) {
try {
rl.add(LocalReference
.createFileReference(entry));
} catch (IOException ioe) {
getLogger().log(Level.WARNING,
"Unable to create file reference", ioe);
}
}
output = rl.getTextRepresentation();
} else {
// Return the file content
output = new FileRepresentation(file, metadataService
.getDefaultMediaType(), getTimeToLive());
updateMetadata(metadataService, file.getName(), output);