}
final SchemaParser filterParser = new SchemaParser();
filterParser.setValidationOptions(val);
final NamedDataSchema filteredSchema = Filters.removeByPredicate((NamedDataSchema) originalSchema,
predicate, filterParser);
if (filterParser.hasError())
{
_log.error("Error applying predicate: " + filterParser.errorMessageBuilder().toString());
exitCode = 1;
continue;
}
final String relativePath = sourceDirectoryURI.relativize(sourceFile.toURI()).getPath();
final String outputFilePath = outputDirectory.getPath() + File.separator + relativePath;
final File outputFile = new File(outputFilePath);
final File outputFileParent = outputFile.getParentFile();
outputFileParent.mkdirs();
if (!outputFileParent.exists())
{
_log.error("Unable to write filtered schema to " + outputFileParent.getPath());
exitCode = 1;
continue;
}
FileOutputStream fout = new FileOutputStream(outputFile);
fout.write(filteredSchema.toString().getBytes(RestConstants.DEFAULT_CHARSET));
fout.close();
}
catch (IOException e)
{
_log.error(e.getMessage());