in streampipes-measurement-units/src/main/java/com/github/jqudt/onto/UnitFactory.java [58:100]
public Unit getUnit(URI resource) {
if (resource == null) throw new IllegalArgumentException("The URI cannot be null");
ValueFactory f = ValueFactoryImpl.getInstance();
org.eclipse.rdf4j.model.URI uri = f.createURI(resource.toString());
Unit unit = new Unit();
unit.setResource(resource);
Multiplier multiplier = new Multiplier();
try {
Model statements = repos.filter(uri, null, null);
if (statements.isEmpty())
throw new IllegalStateException("No ontology entry found for: " + resource.toString());
for (Statement statement : statements) {
if (statement.getPredicate().equals(QUDT.SYMBOL)) {
unit.setSymbol(statement.getObject().stringValue());
} else if (statement.getPredicate().equals(QUDT.ABBREVIATION)) {
unit.setAbbreviation(statement.getObject().stringValue());
} else if (statement.getPredicate().equals(QUDT.CONVERSION_OFFSET)) {
multiplier.setOffset(Double.parseDouble(statement.getObject().stringValue()));
} else if (statement.getPredicate().equals(QUDT.CONVERSION_MULTIPLIER)) {
multiplier.setMultiplier(Double.parseDouble(statement.getObject().stringValue()));
} else if (statement.getPredicate().equals(RDFS.LABEL)) {
unit.setLabel(statement.getObject().stringValue());
} else if (statement.getPredicate().equals(RDF.TYPE)) {
Object type = statement.getObject();
if (type instanceof org.eclipse.rdf4j.model.URI) {
org.eclipse.rdf4j.model.URI typeURI = (org.eclipse.rdf4j.model.URI)type;
if (!shouldBeIgnored(typeURI)) {
unit.setType(new URI(typeURI.stringValue()));
}
}
}
}
unit.setMultiplier(multiplier);
} catch (Exception exception) {
throw new IllegalStateException("Could not create the unit: " + exception.getMessage(), exception);
}
return unit;
}