use of com.revolsys.io.filter.ExtensionFilenameFilter in project com.revolsys.open by revolsys.
the class DirectoryRecordStore method refreshSchemaElements.
@Override
protected Map<PathName, RecordStoreSchemaElement> refreshSchemaElements(final RecordStoreSchema schema) {
final Map<PathName, RecordStoreSchemaElement> elements = new TreeMap<>();
final String schemaPath = schema.getPath();
final PathName schemaPathName = schema.getPathName();
final File subDirectory;
if (schemaPath.equals("/")) {
subDirectory = this.directory;
} else {
subDirectory = new File(this.directory, schemaPath);
}
final FileFilter filter = new ExtensionFilenameFilter(this.fileExtensions);
final File[] files = subDirectory.listFiles();
if (files != null) {
for (final File file : files) {
if (filter.accept(file)) {
final PathResource resource = new PathResource(file);
final RecordDefinition recordDefinition = loadRecordDefinition(schema, schemaPath, resource);
if (recordDefinition != null) {
final PathName path = recordDefinition.getPathName();
elements.put(path, recordDefinition);
}
} else if (file.isDirectory()) {
final String name = file.getName();
final PathName childSchemaPath = schemaPathName.newChild(name);
RecordStoreSchema childSchema = schema.getSchema(childSchemaPath);
if (childSchema == null) {
childSchema = new RecordStoreSchema(schema, childSchemaPath);
} else {
if (!childSchema.isInitialized()) {
childSchema.refresh();
}
}
elements.put(childSchemaPath, childSchema);
}
}
}
return elements;
}
Aggregations