@Override public void executeSetOnStatement(XDIStatement targetStatement, SetOperation operation, Graph operationResultGraph, ExecutionContext executionContext) throws Xdi2MessagingException { this.getGraph().setStatement(targetStatement); }
/** * Copies a statement into another graph. * @param statement A statement from any graph. * @param targetGraph The target graph. * @param copyStrategy The strategy to determine what to copy. * @return The copied statement in the target graph. */ public static Statement copyStatement(Statement statement, Graph targetGraph, CopyStrategy copyStrategy) { if (statement == null) throw new NullPointerException(); if (targetGraph == null) throw new NullPointerException(); if (copyStrategy == null) copyStrategy = DEFAULT_COPY_STRATEGY; targetGraph.setStatement(statement.getXDIStatement()); return null; }
private static void read(Graph graph, BufferedReader bufferedReader) throws IOException, Xdi2ParseException { String line; int lineNr = 0; while ((line = bufferedReader.readLine()) != null) { lineNr++; line = line.trim(); if (line.isEmpty()) continue; XDIStatement XDIstatement; try { XDIstatement = XDIStatement.create(line); } catch (Exception ex) { throw new Xdi2ParseException("Parser problem at line " + lineNr + ": " + ex.getMessage(), ex); } // add the statement to the graph try { graph.setStatement(XDIstatement); } catch (Exception ex) { throw new Xdi2ParseException("Graph problem at line " + lineNr + ": " + ex.getMessage(), ex); } } }
@Override public InterceptorResult after(Operation operation, Graph operationResultGraph, ExecutionContext executionContext) throws Xdi2MessagingException { // add $is statements for all the substituted variables for (Entry<XDIArc, XDIArc> entry : getVariablesPerOperation(executionContext).entrySet()) { XDIAddress subject = XDIAddress.create(entry.getKey().toString()); XDIAddress predicate = XDIDictionaryConstants.XDI_ADD_IS; XDIAddress object = XDIAddress.create(entry.getValue().toString()); XDIStatement statement = XDIStatement.fromComponents(subject, predicate, object); operationResultGraph.setStatement(statement); } // done return InterceptorResult.DEFAULT; }
@Override public ContributorResult executeGetOnAddress( XDIAddress[] contributorAddresses, XDIAddress contributorsAddress, XDIAddress relativeTargetAddress, GetOperation operation, Graph operationResultGraph, ExecutionContext executionContext) throws Xdi2MessagingException { operationResultGraph.setStatement(XDIStatement.fromLiteralComponents( XDIAddress.create("" + contributorsAddress), this.value)); return ContributorResult.DEFAULT; } }
@Override public ContributorResult executeGetOnAddress( XDIAddress[] contributorAddresses, XDIAddress contributorsAddress, XDIAddress relativeTargetAddress, GetOperation operation, Graph operationResultGraph, ExecutionContext executionContext) throws Xdi2MessagingException { operationResultGraph.setStatement(XDIStatement.fromLiteralComponents( XDIAddress.create("" + contributorsAddress + "=a<#b>"), this.value)); operationResultGraph.setStatement(XDIStatement.fromRelationComponents( XDIAddress.create("" + contributorsAddress + "=x*y"), XDIAddress.create("" + "#c"), XDIAddress.create("" + contributorsAddress + "=d*e"))); return ContributorResult.DEFAULT; } }
public void testNormalizedSerialization() throws Exception { Graph graph = MemoryGraphFactory.getInstance().openGraph(); graph.setStatement(XDIStatement.create("=markus<#email>/&/\"markus@projectdanube.org\"")); graph.setStatement(XDIStatement.create("=markus/#friend/=animesh")); ContextNode contextNode = graph.getDeepContextNode(XDIAddress.create("=markus")); String normalizedSerialization = "{\"/\":[\"=animesh\",\"=markus\"],\"=markus/\":[\"<#email>\"],\"=markus/#friend\":[\"=animesh\"],\"=markus<#email>/&\":\"markus@projectdanube.org\"}"; assertEquals(Normalization.serialize(contextNode, null), normalizedSerialization); graph.close(); } }
@Override public ContributorResult executeGetOnAddress( XDIAddress[] contributorAddresses, XDIAddress contributorsAddress, XDIAddress relativeTargetAddress, GetOperation operation, Graph operationResultGraph, ExecutionContext executionContext) throws Xdi2MessagingException { operationResultGraph.setStatement(XDIStatement.fromRelationComponents( XDIAddress.create("" + contributorsAddress + "=markus"), XDIAddress.create("" + "#friend"), XDIAddress.create("" + contributorsAddress + "=animesh"))); return ContributorResult.DEFAULT; } }
public void testCopyUtil() throws Exception { Graph graph = MemoryGraphFactory.getInstance().openGraph(); graph.setStatement(XDIStatement.create("=markus<#email>/&/\"markus@projectdanube.org\"")); graph.setStatement(XDIStatement.create("=markus/#friend/=neustar=animesh")); graph.setStatement(XDIStatement.create("=neustar=animesh<#email>/&/\"animesh@gmail.com\"")); graph.setStatement(XDIStatement.create("=neustar=animesh/#friend/=markus")); Graph graph2 = MemoryGraphFactory.getInstance().openGraph(); CopyUtil.copyGraph(graph, graph2, null); Graph graph3 = MemoryGraphFactory.getInstance().openGraph(); CopyUtil.copyGraph(graph, graph3, null); CopyUtil.copyGraph(graph2, graph3, null); assertEquals(graph, graph2); assertEquals(graph2, graph3); assertEquals(graph3, graph); graph.close(); graph2.close(); graph3.close(); }
public void testNoExceptions() throws Exception { Graph graph17 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-17"); graph17.setStatement(XDIStatement.create("=markus<#email>/&/\"Markus Sabadello\"")); graph17.setStatement(XDIStatement.create("=markus/#friend/=neustar=les")); ContextNode root = graph17.getRootContextNode(); ContextNode markus = graph17.getDeepContextNode(XDIAddress.create("=markus")); ContextNode les = graph17.getDeepContextNode(XDIAddress.create("=neustar=les")); root.setContextNode(XDIArc.create("=markus")); markus.setDeepContextNode(XDIAddress.create("<#email>")).setLiteralNode("test"); markus.setRelation(XDIAddress.create("#friend"), les); graph17.close(); }
public void testDeleteCyclicRelation() throws Exception { Graph graph31 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-31"); graph31.setStatement(XDIStatement.create("=a=b=c=d=e/+x/=a=b=c")); graph31.setStatement(XDIStatement.create("=m=n=o/+y/=a=b=c=d")); graph31.getDeepContextNode(XDIAddress.create("=a=b")).delete(); assertEquals(graph31.getRootContextNode().getAllContextNodeCount(), 4); assertEquals(graph31.getRootContextNode().getAllRelationCount(), 0); assertEquals(graph31.getRootContextNode().getAllStatementCount(), 4); graph31.close(); }
public void testMultipleReplacements() throws Exception { Graph graph1 = MemoryGraphFactory.getInstance().openGraph(); Graph graph2 = MemoryGraphFactory.getInstance().openGraph(); graph1.setStatement(XDIStatement.create("=a=b=c/+e/=f")); XDIArc from1 = XDIArc.create("=b"); List<XDIAddress> to1 = new ArrayList<XDIAddress> (); to1.add(XDIAddress.create("=x")); to1.add(XDIAddress.create("=y")); XDIArc from2 = XDIArc.create("=f"); List<XDIAddress> to2 = new ArrayList<XDIAddress> (); to2.add(XDIAddress.create("=m")); to2.add(XDIAddress.create("=n")); Map<XDIArc, Object> replacements = new HashMap<XDIArc, Object> (); replacements.put(from1, to1); replacements.put(from2, to2); CopyUtil.copyGraph(graph1, graph2, new ReplaceXDIAddressCopyStrategy(replacements)); assertTrue(graph2.containsStatement(XDIStatement.create("=a=x=c/+e/=m"))); assertTrue(graph2.containsStatement(XDIStatement.create("=a=x=c/+e/=n"))); assertTrue(graph2.containsStatement(XDIStatement.create("=a=y=c/+e/=m"))); assertTrue(graph2.containsStatement(XDIStatement.create("=a=y=c/+e/=n"))); assertEquals(graph2.getAllStatementCount(), 11); graph1.close(); graph2.close(); }
public void testSignAndValidateKeyPair() throws Exception { KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); keyPairGen.initialize(1024); KeyPair keyPair = keyPairGen.generateKeyPair(); RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); Graph graph = MemoryGraphFactory.getInstance().openGraph(); graph.setStatement(XDIStatement.create("=markus<#email>/&/\"markus@projectdanube.org\"")); graph.setStatement(XDIStatement.create("=markus/#friend/=animesh")); ContextNode contextNode = graph.getDeepContextNode(XDIAddress.create("=markus")); RSASignature signature = new RSAStaticPrivateKeySignatureCreator(privateKey).createSignature(contextNode); signature = (RSASignature) Signatures.getSignatures(contextNode).next(); assertEquals(signature.getDigestAlgorithm(), RSASignature.DIGEST_ALGORITHM_SHA); assertEquals(signature.getDigestVersion(), Integer.valueOf(256)); assertEquals(signature.getKeyAlgorithm(), RSASignature.KEY_ALGORITHM_RSA); assertEquals(signature.getKeyLength(), Integer.valueOf(1024)); assertEquals(signature.getJCEAlgorithm(), "SHA256withRSA"); assertEquals(signature.getBaseContextNode(), contextNode); assertTrue(new RSAStaticPublicKeySignatureValidator(publicKey).validateSignature(signature)); contextNode.setRelation(XDIAddress.create("#friend"), XDIAddress.create("=joseph")); assertFalse(new RSAStaticPublicKeySignatureValidator(publicKey).validateSignature(signature)); graph.close(); }
graph.setStatement(XDIStatement.create("=markus<#email>/&/\"markus@projectdanube.org\"")); graph.setStatement(XDIStatement.create("=markus/#friend/=animesh"));
graph18.setStatement(XDIStatement.create("=markus<#email>/&/\"Markus Sabadello\"")); graph18.setStatement(XDIStatement.create("=markus/#friend/=neustar=les"));
public void testDeleteContextNodesDeletesRelations() throws Exception { Graph graph27 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-27"); Relation r1 = graph27.setDeepContextNode(XDIAddress.create("=animesh")).setRelation(XDIAddress.create("#friend"), XDIAddress.create("=markus")); Relation r2 = graph27.setDeepContextNode(XDIAddress.create("=markus")).setRelation(XDIAddress.create("#friend"), XDIAddress.create("=animesh")); ContextNode markus = (ContextNode) r1.follow(); ContextNode animesh = (ContextNode) r2.follow(); markus.delete(); assertNotNull(graph27.getDeepContextNode(XDIAddress.create("=animesh"))); assertFalse(graph27.getDeepContextNode(XDIAddress.create("=animesh")).getRelations().hasNext()); assertFalse(graph27.getDeepContextNode(XDIAddress.create("=animesh")).getRelations(XDIAddress.create("#friend")).hasNext()); assertEquals(graph27.getDeepContextNode(XDIAddress.create("=animesh")).getRelationCount(), 0); assertFalse(graph27.getDeepContextNode(XDIAddress.create("=animesh")).getIncomingRelations().hasNext()); assertFalse(graph27.getDeepContextNode(XDIAddress.create("=animesh")).getIncomingRelations(XDIAddress.create("#friend")).hasNext()); assertFalse(animesh.getRelations().hasNext()); assertFalse(animesh.getRelations(XDIAddress.create("#friend")).hasNext()); assertEquals(animesh.getRelationCount(), 0); assertFalse(animesh.getIncomingRelations().hasNext()); assertFalse(animesh.getIncomingRelations(XDIAddress.create("#friend")).hasNext()); animesh.delete(); graph27.setStatement(XDIStatement.create("+a+b/$i/=x")); graph27.setStatement(XDIStatement.create("=x/$i/=y")); graph27.getRootContextNode().getContextNode(XDIArc.create("+a")).delete(); assertEquals(graph27.getRootContextNode().getAllRelationCount(), 1); assertTrue(graph27.getRootContextNode().getContextNode(XDIArc.create("=x")).getRelations().hasNext()); assertFalse(graph27.getRootContextNode().getContextNode(XDIArc.create("=x")).getIncomingRelations().hasNext()); graph27.getRootContextNode().getContextNode(XDIArc.create("=x")).delete(); assertEquals(graph27.getRootContextNode().getAllRelationCount(), 0); graph27.close(); }
graph.setStatement(XDIStatement.create(invalidStatement));
Graph graph23 = this.getGraphFactory().openGraph(this.getClass().getName() + "-graph-23"); ContextNodeStatement statement22_1 = (ContextNodeStatement) graph22.setStatement(XDIStatement.create("=neustar//=les")); RelationStatement statement22_2 = (RelationStatement) graph22.setStatement(XDIStatement.create("=markus/#friend/=neustar=les")); LiteralStatement statement22_3 = (LiteralStatement) graph22.setStatement(XDIStatement.create("=markus<#email>/&/\"markus@projectdanube.org\""));
graph16.setStatement(XDIStatement.create("=markus/#friend/=animesh")); graph16.setStatement(XDIStatement.create("=markus/#friend/=neustar=les")); graph16.setStatement(XDIStatement.create("=!:uuid:1111=!:uuid:2222/$is/=markus"));
graph30.setStatement(XDIStatement.create("(=a/+b)(=x/+y)(=mm/+nn)=oo/+pp/=qq"));