/** * Answer the string described by the value of the unique optional <code>classProperty</code> * property of <code>root</code>, or null if there's no such property. The value may be a URI, in * which case it must be a <b>java:</b> URI with content the class name; or it may be a literal, * in which case its lexical form is its class name; otherwise, BOOM. */ public static String getOptionalClassName(Resource root, Property classProperty) { RDFNode classNode = getUnique(root, classProperty); return classNode == null ? null : classNode.isLiteral() ? classNode.asNode().getLiteralLexicalForm() : classNode.isResource() ? mustBeJava(classNode.asNode().getURI()) : null; }