package org.neo4j.rdf.sail.utils; import org.neo4j.rdf.model.Context; import org.neo4j.rdf.model.Wildcard; import org.openrdf.model.Resource; public class ContextHandling { public static org.neo4j.rdf.model.Context createContext(final Resource resource) { // TODO: handle BNode contexts (their String representation is probably not what you want) return (null == resource) ? org.neo4j.rdf.model.Context.NULL : new org.neo4j.rdf.model.Context(resource.toString()); } public static org.neo4j.rdf.model.Value createSingleContext(boolean mustBeOne, final Resource... contexts) { org.neo4j.rdf.model.Value context = null; if (contexts.length == 0) { if (mustBeOne) { throw new IllegalArgumentException("Must be exactely one context"); } context = new Wildcard("?g"); } else if (contexts.length == 1) { context = createContext(contexts[0]); } else { throw new IllegalArgumentException("Can only have zero or one context"); } return context; } public static org.neo4j.rdf.model.Context[] createContexts( final Resource... resources ) { if ( resources == null ) { return new Context[] { org.neo4j.rdf.model.Context.NULL }; } Context[] contexts = new Context[ resources.length ]; for ( int i = 0; i < resources.length; i++ ) { contexts[ i ] = createContext( resources[ i ] ); } return contexts; } }