@Override
public void parse(Model model, Resource repImplNode)
throws RepositoryConfigException
{
try {
Optional<Resource> sailImplNode = Models.objectResource(model.filter(repImplNode, SAILIMPL, null));
if (sailImplNode.isPresent()) {
Models.objectLiteral(model.filter(sailImplNode.get(), SAILTYPE, null)).ifPresent(typeLit -> {
SailFactory factory = SailRegistry.getInstance().get(typeLit.getLabel()).orElseThrow(
() -> new RepositoryConfigException("Unsupported Sail type: " + typeLit.getLabel()));
sailImplConfig = factory.getConfig();
sailImplConfig.parse(model, sailImplNode.get());
});
}
}
catch (ModelException e) {
throw new RepositoryConfigException(e.getMessage(), e);
}
catch (SailConfigException e) {
throw new RepositoryConfigException(e.getMessage(), e);
}
}
}