ConfigureResponse validateConfig(ConnectorFactory factory) {
Collection<String> errorKeys = assureAllMandatoryFieldsPresent();
if (errorKeys.size() != 0) {
return new ConfigureResponse(bundle.getString(FileSystemConnectorErrorMessages.MISSING_FIELDS.name()),
getFormRows(errorKeys));
}
String errorMessageHtml = assureNoUncPathStrings();
if (errorMessageHtml.length() != 0) {
errorKeys = Collections.singletonList(startField.getName());
ConfigureResponse response
= new ConfigureResponse(errorMessageHtml, getFormRows(errorKeys));
return response;
}
errorMessageHtml = assureStartPathsReadable();
if (errorMessageHtml.length() != 0) {
errorKeys = Collections.singletonList(startField.getName());
return new ConfigureResponse(errorMessageHtml, getFormRows(errorKeys));
}
errorMessageHtml = assureStartPathsNotExcluded();
if (errorMessageHtml.length() != 0) {
errorKeys = new ArrayList<String>();
errorKeys.add(includeField.getName());
errorKeys.add(excludeField.getName());
return new ConfigureResponse(errorMessageHtml, getFormRows(errorKeys));
}
errorMessageHtml = assureFullTraversalInteger();
if (errorMessageHtml != null) {
errorKeys = Collections.singletonList(fullTraversalField.getName());
return new ConfigureResponse(errorMessageHtml, getFormRows(errorKeys));
}
// If we have been given a factory, try to instantiate a connector.
try {
if (factory != null) {
factory.makeConnector(config);
}
return null;
} catch (RepositoryException e) {
// We should perform sufficient validation so instantiation succeeds.
LOG.severe("failed to instantiate File Connector " + e.getMessage());
return new ConfigureResponse(bundle.getString(FileSystemConnectorErrorMessages.CONNECTOR_INSTANTIATION_FAILED
.name()), getFormRows(null));
}
}