Statement transform()

in src/main/java/software/amazon/neptune/csv2rdf/UriPostTransformer.java [201:237]


	Statement transform(Statement statement) {
		Resource newSubject = null;
		IRI newPredicate = null;
		Value newObject = null;
		Resource newContext = null;

		for (UriPostTransformation uriPostTransformation : uriPostTransformations) {

			// register the URIs (may be a no-op)
			if (newSubject == null && statement.getSubject() instanceof IRI) {
				newSubject = uriPostTransformation.apply(statement.getSubject().stringValue());
			}

			if (newPredicate == null && statement.getPredicate() instanceof IRI) {
				newPredicate = uriPostTransformation.apply(statement.getPredicate().stringValue());
			}

			if (newObject == null && statement.getObject() instanceof IRI) {
				newObject = uriPostTransformation.apply(statement.getObject().stringValue());
			}

			if (newContext == null && statement.getContext() instanceof IRI) {
				newContext = uriPostTransformation.apply(statement.getContext().stringValue());
			}
		}

		if (newSubject == null && newPredicate == null && newObject == null && newContext == null) {
			return statement;
		}

		Resource subject = newSubject == null ? statement.getSubject() : newSubject;
		IRI predicate = newPredicate == null ? statement.getPredicate() : newPredicate;
		Value object = newObject == null ? statement.getObject() : newObject;
		Resource context = newContext == null ? statement.getContext() : newContext;

		return vf.createStatement(subject, predicate, object, context);
	}