You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by cl...@apache.org on 2015/07/19 11:29:25 UTC
[1/4] jena git commit: initial changes on perm-interface-refactor as
part of fix for JENA-992
Repository: jena
Updated Branches:
refs/heads/master 2e99c459c -> 2940ec308
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredRDFListImpl.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredRDFListImpl.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredRDFListImpl.java
index 7db89b5..66fc8f3 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredRDFListImpl.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredRDFListImpl.java
@@ -26,10 +26,10 @@ import java.util.function.Function;
import org.apache.jena.graph.Node ;
import org.apache.jena.graph.Triple ;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.permissions.SecurityEvaluator.Action;
import org.apache.jena.permissions.impl.ItemHolder;
-import org.apache.jena.permissions.impl.SecuredItem;
import org.apache.jena.permissions.impl.SecuredItemImpl;
import org.apache.jena.permissions.impl.SecuredItemInvoker;
import org.apache.jena.permissions.model.SecuredModel;
@@ -379,14 +379,14 @@ public class SecuredRDFListImpl extends SecuredResourceImpl implements
private void checkCreateNewList( final RDFNode value, final Resource tail )
{
- checkCreate(new SecurityEvaluator.SecTriple(
- SecurityEvaluator.SecNode.FUTURE,
- SecuredItemImpl.convert(listFirst().asNode()),
- SecuredItemImpl.convert(value.asNode())));
- checkCreate(new SecurityEvaluator.SecTriple(
- SecurityEvaluator.SecNode.FUTURE,
- SecuredItemImpl.convert(listRest().asNode()),
- SecuredItemImpl.convert(tail.asNode())));
+ checkCreate(new Triple(
+ SecurityEvaluator.FUTURE,
+ listFirst().asNode(),
+ value.asNode()));
+ checkCreate(new Triple(
+ SecurityEvaluator.FUTURE,
+ listRest().asNode(),
+ tail.asNode()));
}
private Set<Statement> collectStatements( final Set<Action> actions )
@@ -421,20 +421,19 @@ public class SecuredRDFListImpl extends SecuredResourceImpl implements
}
else
{
- final org.apache.jena.permissions.SecurityEvaluator.SecNode p = SecuredItemImpl
- .convert(listFirst().asNode());
- org.apache.jena.permissions.SecurityEvaluator.SecTriple t = new org.apache.jena.permissions.SecurityEvaluator.SecTriple(
- org.apache.jena.permissions.SecurityEvaluator.SecNode.FUTURE,
- p, org.apache.jena.permissions.SecurityEvaluator.SecNode.ANY);
+
+ Triple t = new Triple(
+ SecurityEvaluator.FUTURE,
+ listFirst().asNode(), Node.ANY);
if (!canCreate(t))
{
final List<RDFNode> list = new ArrayList<RDFNode>();
while (nodes.hasNext())
{
final RDFNode n = nodes.next();
- t = new org.apache.jena.permissions.SecurityEvaluator.SecTriple(
- org.apache.jena.permissions.SecurityEvaluator.SecNode.FUTURE,
- p, SecuredItemImpl.convert(n.asNode()));
+ t = new Triple(
+ SecurityEvaluator.FUTURE,
+ listFirst().asNode(), n.asNode());
checkCreate(t);
list.add(n);
}
@@ -460,11 +459,9 @@ public class SecuredRDFListImpl extends SecuredResourceImpl implements
}
else
{
- final org.apache.jena.permissions.SecurityEvaluator.SecNode p = SecuredItemImpl
- .convert(listFirst().asNode());
- org.apache.jena.permissions.SecurityEvaluator.SecTriple t = new org.apache.jena.permissions.SecurityEvaluator.SecTriple(
- org.apache.jena.permissions.SecurityEvaluator.SecNode.FUTURE,
- p, org.apache.jena.permissions.SecurityEvaluator.SecNode.ANY);
+ Triple t = new Triple(
+ SecurityEvaluator.FUTURE,
+ listFirst().asNode(), Node.ANY);
if (!canCreate(t))
{
final ExtendedIterator<RDFNode> iter = list.iterator();
@@ -472,10 +469,10 @@ public class SecuredRDFListImpl extends SecuredResourceImpl implements
{
while (iter.hasNext())
{
- t = new org.apache.jena.permissions.SecurityEvaluator.SecTriple(
- org.apache.jena.permissions.SecurityEvaluator.SecNode.FUTURE,
- p, SecuredItemImpl
- .convert(iter.next().asNode()));
+ t = new Triple(
+ SecurityEvaluator.FUTURE,
+ listFirst().asNode(),
+ iter.next().asNode());
checkCreate(t);
}
}
@@ -878,7 +875,7 @@ public class SecuredRDFListImpl extends SecuredResourceImpl implements
final Set<Action> perms = SecurityEvaluator.Util.asSet(new Action[] {
Action.Delete, Action.Read });
if (getSecurityEvaluator().evaluate(getSecurityEvaluator().getPrincipal(), perms, this.getModelNode(),
- SecuredItemImpl.convert(t)))
+ t))
{
holder.getBaseItem().removeList();
}
@@ -886,7 +883,7 @@ public class SecuredRDFListImpl extends SecuredResourceImpl implements
{
for (final Statement s : collectStatements(perms))
{
- if (canDelete(s.asTriple()))
+ if (canDelete(s))
{
s.remove();
}
@@ -1040,10 +1037,10 @@ public class SecuredRDFListImpl extends SecuredResourceImpl implements
public SecuredRDFList with( final RDFNode value )
{
checkUpdate();
- checkCreate(new SecurityEvaluator.SecTriple(
- SecurityEvaluator.SecNode.FUTURE,
- SecuredItemImpl.convert(listFirst().asNode()),
- SecuredItemImpl.convert(value.asNode())));
+ checkCreate(new Triple(
+ SecurityEvaluator.FUTURE,
+ listFirst().asNode(),
+ value.asNode()));
return SecuredRDFListImpl.getInstance(getModel(), holder.getBaseItem()
.with(value));
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredRSIterator.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredRSIterator.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredRSIterator.java
index 2fbbb40..5b38a17 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredRSIterator.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredRSIterator.java
@@ -23,9 +23,9 @@ import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
+import org.apache.jena.graph.Node;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.permissions.SecurityEvaluator.Action;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode;
import org.apache.jena.permissions.impl.SecuredItemImpl;
import org.apache.jena.permissions.model.SecuredModel;
import org.apache.jena.rdf.model.RSIterator ;
@@ -40,7 +40,7 @@ public class SecuredRSIterator implements RSIterator
private class PermReifiedStatementFilter implements Predicate<ReifiedStatement>
{
private final SecurityEvaluator evaluator;
- private final SecNode modelNode;
+ private final Node modelNode;
private final Set<Action> actions;
public PermReifiedStatementFilter( final Action[] actions,
@@ -55,7 +55,7 @@ public class SecuredRSIterator implements RSIterator
public boolean test( final ReifiedStatement t )
{
return evaluator.evaluateAny(evaluator.getPrincipal(), actions, modelNode,
- SecuredItemImpl.convert(t.getStatement().asTriple()));
+ t.getStatement().asTriple());
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java
index d6be052..cbfa415 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java
@@ -22,9 +22,9 @@ import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
import org.apache.jena.graph.Triple ;
import org.apache.jena.permissions.ReadDeniedException;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.permissions.SecurityEvaluator.Action;
import org.apache.jena.permissions.impl.ItemHolder;
-import org.apache.jena.permissions.impl.SecuredItem;
import org.apache.jena.permissions.impl.SecuredItemInvoker;
import org.apache.jena.permissions.model.SecuredModel;
import org.apache.jena.permissions.model.SecuredResource;
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredSelector.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredSelector.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredSelector.java
index 9c18699..a6593e8 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredSelector.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredSelector.java
@@ -17,10 +17,7 @@
*/
package org.apache.jena.permissions.model.impl;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode;
-import org.apache.jena.permissions.SecurityEvaluator.SecTriple;
-import org.apache.jena.permissions.impl.SecuredItem;
-import org.apache.jena.permissions.impl.SecuredItemImpl;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.rdf.model.* ;
public class SecuredSelector implements Selector
@@ -40,12 +37,6 @@ public class SecuredSelector implements Selector
this.selector = selector;
}
- private SecNode getNode( final RDFNode node )
- {
- return node == null ? SecNode.ANY : SecuredItemImpl.convert(node
- .asNode());
- }
-
@Override
public RDFNode getObject()
{
@@ -67,7 +58,7 @@ public class SecuredSelector implements Selector
@Override
public boolean isSimple()
{
- return securedItem.canRead(SecTriple.ANY);
+ return selector.isSimple();
}
/**
@@ -82,11 +73,9 @@ public class SecuredSelector implements Selector
@Override
public boolean test( final Statement s )
{
- if (selector.test(s))
+ if (securedItem.canRead(s))
{
- final SecTriple t = new SecTriple(getNode(s.getSubject()),
- getNode(s.getPredicate()), getNode(s.getObject()));
- return securedItem.canRead(t);
+ return selector.test(s);
}
return false;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredStatementImpl.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredStatementImpl.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredStatementImpl.java
index cd0a97b..99c7ed6 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredStatementImpl.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredStatementImpl.java
@@ -253,8 +253,7 @@ public class SecuredStatementImpl extends SecuredItemImpl implements
public SecuredReifiedStatement createReifiedStatement()
{
checkUpdate();
- checkCreateReified(null,
- SecuredItemImpl.convert(holder.getBaseItem().asTriple()));
+ checkCreateReified(null, holder.getBaseItem());
return SecuredReifiedStatementImpl.getInstance(getModel(), holder
.getBaseItem().createReifiedStatement());
}
@@ -263,8 +262,7 @@ public class SecuredStatementImpl extends SecuredItemImpl implements
public SecuredReifiedStatement createReifiedStatement( final String uri )
{
checkUpdate();
- checkCreateReified(uri,
- SecuredItemImpl.convert(holder.getBaseItem().asTriple()));
+ checkCreateReified(uri, holder.getBaseItem());
return SecuredReifiedStatementImpl.getInstance(getModel(), holder
.getBaseItem().createReifiedStatement(uri));
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/query/SecuredQueryEngine.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/query/SecuredQueryEngine.java b/jena-permissions/src/main/java/org/apache/jena/permissions/query/SecuredQueryEngine.java
index ea8665b..65fde31 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/query/SecuredQueryEngine.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/query/SecuredQueryEngine.java
@@ -21,9 +21,10 @@ import java.security.Principal;
import java.util.Set;
import org.apache.jena.graph.Graph ;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.Triple;
+import org.apache.jena.graph.NodeFactory;
import org.apache.jena.permissions.SecurityEvaluator;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode.Type;
import org.apache.jena.permissions.query.rewriter.OpRewriter;
import org.apache.jena.query.Query ;
import org.apache.jena.permissions.graph.SecuredGraph;
@@ -41,7 +42,7 @@ public class SecuredQueryEngine extends QueryEngineMain
.getLogger(SecuredQueryEngine.class);
private SecurityEvaluator securityEvaluator;
- private SecNode graphIRI;
+ private Node graphIRI;
/*
* public SecuredQueryEngine( Op op, DatasetGraph dataset, Binding input,
@@ -88,54 +89,54 @@ public class SecuredQueryEngine extends QueryEngineMain
}
else
{
- graphIRI = new SecNode(Type.URI, "urn:x-arq:DefaultGraph");
+ graphIRI = NodeFactory.createURI( "urn:x-arq:DefaultGraph");
this.securityEvaluator = new SecurityEvaluator() {
@Override
public boolean evaluate( final Object principal, final Action action,
- final SecNode graphIRI )
+ final Node graphIRI )
{
return true;
}
@Override
public boolean evaluate( final Object principal, final Action action,
- final SecNode graphIRI, final SecTriple triple )
+ final Node graphIRI, final Triple triple )
{
return true;
}
@Override
public boolean evaluate( final Object principal, final Set<Action> action,
- final SecNode graphIRI )
+ final Node graphIRI )
{
return true;
}
@Override
public boolean evaluate( final Object principal, final Set<Action> action,
- final SecNode graphIRI, final SecTriple triple )
+ final Node graphIRI, final Triple triple )
{
return true;
}
@Override
public boolean evaluateAny( final Object principal, final Set<Action> action,
- final SecNode graphIRI )
+ final Node graphIRI )
{
return true;
}
@Override
public boolean evaluateAny( final Object principal, final Set<Action> action,
- final SecNode graphIRI, final SecTriple triple )
+ final Node graphIRI, final Triple triple )
{
return true;
}
@Override
- public boolean evaluateUpdate( final Object principal, final SecNode graphIRI,
- final SecTriple from, final SecTriple to )
+ public boolean evaluateUpdate( final Object principal, final Node graphIRI,
+ final Triple from, final Triple to )
{
return true;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/OpRewriter.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/OpRewriter.java b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/OpRewriter.java
index 2fea0ad..ea25952 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/OpRewriter.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/OpRewriter.java
@@ -21,13 +21,12 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.jena.graph.Node ;
+import org.apache.jena.graph.NodeFactory;
import org.apache.jena.graph.Triple ;
import org.apache.jena.permissions.ReadDeniedException;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.permissions.SecurityEvaluator.Action;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode;
-import org.apache.jena.permissions.SecurityEvaluator.SecTriple;
-import org.apache.jena.permissions.impl.SecuredItem;
import org.apache.jena.permissions.impl.SecuredItemImpl;
import org.apache.jena.sparql.algebra.Op ;
import org.apache.jena.sparql.algebra.OpVisitor ;
@@ -47,7 +46,7 @@ public class OpRewriter implements OpVisitor
{
private static Logger LOG = LoggerFactory.getLogger(OpRewriter.class);
private OpSequence result;
- private final SecNode graphIRI;
+ private final Node graphIRI;
private final SecurityEvaluator securityEvaluator;
// if true the restricted data are silently ignored.
// default false
@@ -59,7 +58,7 @@ public class OpRewriter implements OpVisitor
* @param graphIRI The IRI for the default graph.
*/
public OpRewriter( final SecurityEvaluator securityEvaluator,
- final SecNode graphIRI )
+ final Node graphIRI )
{
this.securityEvaluator = securityEvaluator;
this.graphIRI = graphIRI;
@@ -75,7 +74,7 @@ public class OpRewriter implements OpVisitor
public OpRewriter( final SecurityEvaluator securityEvaluator,
final String graphIRI )
{
- this(securityEvaluator, new SecNode(SecNode.Type.URI, graphIRI));
+ this(securityEvaluator, NodeFactory.createURI( graphIRI));
}
/**
@@ -223,7 +222,7 @@ public class OpRewriter implements OpVisitor
}
// if the user can read any triple just add the opBGP
- if (securityEvaluator.evaluate(principal, Action.Read, graphIRI, SecTriple.ANY))
+ if (securityEvaluator.evaluate(principal, Action.Read, graphIRI, Triple.ANY))
{
addOp(opBGP);
}
@@ -337,8 +336,7 @@ public class OpRewriter implements OpVisitor
public void visit( final OpGraph opGraph )
{
if (LOG.isDebugEnabled()) { LOG.debug( "Starting visiting OpGraph"); }
- final OpRewriter rewriter = new OpRewriter(securityEvaluator,
- SecuredItemImpl.convert(opGraph.getNode()));
+ final OpRewriter rewriter = new OpRewriter(securityEvaluator, opGraph.getNode());
opGraph.getSubOp().visit(rewriter);
addOp(new OpGraph(opGraph.getNode(), rewriter.getResult()));
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java
index 6690d62..84b699c 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/SecuredFunction.java
@@ -22,8 +22,6 @@ import org.apache.jena.graph.Node ;
import org.apache.jena.graph.Triple ;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.permissions.SecurityEvaluator.Action;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode;
-import org.apache.jena.permissions.SecurityEvaluator.SecTriple;
import org.apache.jena.permissions.impl.SecuredItemImpl;
import org.apache.jena.sparql.core.Var ;
import org.apache.jena.sparql.engine.binding.Binding ;
@@ -36,7 +34,7 @@ public class SecuredFunction extends ExprFunctionN
private final SecurityEvaluator securityEvaluator;
private final List<Node> variables;
private final List<Triple> bgp;
- private final SecNode graphIRI;
+ private final Node graphIRI;
private static ExprList createArgs( List<Node> variables )
{
@@ -48,7 +46,7 @@ public class SecuredFunction extends ExprFunctionN
return retval;
}
- public SecuredFunction( final SecNode graphIRI,
+ public SecuredFunction( final Node graphIRI,
final SecurityEvaluator securityEvaluator,
final List<Node> variables, final List<Triple> bgp )
{
@@ -68,7 +66,7 @@ public class SecuredFunction extends ExprFunctionN
Object principal = securityEvaluator.getPrincipal();
for (final Triple t : bgp)
{
- final SecTriple secT = createSecTriple(t, values);
+ final Triple secT = resolveTriple(t, values);
if (!securityEvaluator.evaluate(principal, Action.Read, graphIRI, secT))
{
return false;
@@ -77,21 +75,21 @@ public class SecuredFunction extends ExprFunctionN
return true;
}
- private SecTriple createSecTriple( final Triple t, final Binding values )
+ private Triple resolveTriple( final Triple t, final Binding values )
{
int idx = variables.indexOf(t.getSubject());
- final SecNode s = SecuredItemImpl.convert(idx ==-1 ? t.getSubject()
- : values.get(Var.alloc( variables.get(idx))));
+ final Node s = idx ==-1 ? t.getSubject()
+ : values.get(Var.alloc( variables.get(idx)));
idx = variables.indexOf(t.getPredicate());
- final SecNode p = SecuredItemImpl.convert(idx == -1 ? t
+ final Node p = idx == -1 ? t
.getPredicate()
- : values.get(Var.alloc( variables.get(idx))));
+ : values.get(Var.alloc( variables.get(idx)));
idx = variables.indexOf(t.getObject());
- final SecNode o = SecuredItemImpl.convert(idx == -1 ? t.getObject()
- : values.get(Var.alloc( variables.get(idx))));
- return new SecTriple(s, p, o);
+ final Node o = idx == -1 ? t.getObject()
+ : values.get(Var.alloc( variables.get(idx)));
+ return new Triple(s, p, o);
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/utils/PermStatementFilter.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/utils/PermStatementFilter.java b/jena-permissions/src/main/java/org/apache/jena/permissions/utils/PermStatementFilter.java
index ba03fd8..b304fc7 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/utils/PermStatementFilter.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/utils/PermStatementFilter.java
@@ -21,11 +21,10 @@ import java.util.Collection;
import java.util.Set;
import java.util.function.Predicate;
+import org.apache.jena.graph.Node;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.permissions.SecurityEvaluator.Action;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode;
-import org.apache.jena.permissions.impl.SecuredItem;
-import org.apache.jena.permissions.impl.SecuredItemImpl;
import org.apache.jena.rdf.model.Statement ;
/**
@@ -36,7 +35,7 @@ import org.apache.jena.rdf.model.Statement ;
public class PermStatementFilter implements Predicate<Statement>
{
private final SecurityEvaluator evaluator;
- private final SecNode modelNode;
+ private final Node modelNode;
private final Set<Action> actions;
private final Object principal;
@@ -157,8 +156,7 @@ public class PermStatementFilter implements Predicate<Statement>
@Override
public boolean test( final Statement s )
{
- return evaluator.evaluateAny(principal, actions, modelNode,
- SecuredItemImpl.convert(s.asTriple()));
+ return evaluator.evaluateAny(principal, actions, modelNode, s.asTriple());
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/utils/PermTripleFilter.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/utils/PermTripleFilter.java b/jena-permissions/src/main/java/org/apache/jena/permissions/utils/PermTripleFilter.java
index 5f54814..48d7d0e 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/utils/PermTripleFilter.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/utils/PermTripleFilter.java
@@ -21,12 +21,11 @@ import java.util.Collection;
import java.util.Set;
import java.util.function.Predicate;
+import org.apache.jena.graph.Node;
import org.apache.jena.graph.Triple ;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.permissions.SecurityEvaluator.Action;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode;
-import org.apache.jena.permissions.impl.SecuredItem;
-import org.apache.jena.permissions.impl.SecuredItemImpl;
/**
* A filter for to filter ExtendedIterators on Triples.
@@ -36,7 +35,7 @@ import org.apache.jena.permissions.impl.SecuredItemImpl;
public class PermTripleFilter implements Predicate<Triple>
{
private final SecurityEvaluator evaluator;
- private final SecNode modelNode;
+ private final Node modelNode;
private final Set<Action> actions;
private final Object principal;
@@ -154,10 +153,9 @@ public class PermTripleFilter implements Predicate<Triple>
}
@Override
- public boolean test( final Triple t )
+ public boolean test( final Triple triple )
{
- return evaluator.evaluateAny(principal, actions, modelNode,
- SecuredItemImpl.convert(t));
+ return evaluator.evaluateAny(principal, actions, modelNode,triple);
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/utils/RDFListSecFilter.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/utils/RDFListSecFilter.java b/jena-permissions/src/main/java/org/apache/jena/permissions/utils/RDFListSecFilter.java
index 7d08a21..b66a48c 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/utils/RDFListSecFilter.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/utils/RDFListSecFilter.java
@@ -20,10 +20,9 @@ package org.apache.jena.permissions.utils;
import java.util.Set;
import java.util.function.Predicate;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.permissions.SecurityEvaluator.Action;
-import org.apache.jena.permissions.impl.SecuredItem;
-import org.apache.jena.permissions.impl.SecuredItemImpl;
import org.apache.jena.rdf.model.RDFList ;
import org.apache.jena.rdf.model.Statement ;
import org.apache.jena.vocabulary.RDF ;
@@ -52,7 +51,6 @@ public class RDFListSecFilter<T extends RDFList> implements Predicate<T>
{
final Statement s = o.getRequiredProperty(RDF.first);
return securedItem.getSecurityEvaluator().evaluate(principal, perms,
- securedItem.getModelNode(),
- SecuredItemImpl.convert(s.asTriple()));
+ securedItem.getModelNode(), s.asTriple());
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/test/java/org/apache/jena/permissions/MockSecurityEvaluator.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/test/java/org/apache/jena/permissions/MockSecurityEvaluator.java b/jena-permissions/src/test/java/org/apache/jena/permissions/MockSecurityEvaluator.java
index 9c0b099..dd2e8d7 100644
--- a/jena-permissions/src/test/java/org/apache/jena/permissions/MockSecurityEvaluator.java
+++ b/jena-permissions/src/test/java/org/apache/jena/permissions/MockSecurityEvaluator.java
@@ -21,6 +21,8 @@ import java.security.Principal;
import java.util.Collections;
import java.util.Set;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.Triple;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.rdf.model.Resource ;
@@ -86,20 +88,20 @@ public class MockSecurityEvaluator implements SecurityEvaluator
}
@Override
- public boolean evaluate( final Object principal, final Action action, final SecNode uri )
+ public boolean evaluate( final Object principal, final Action action, final Node uri )
{
return evaluate(action);
}
@Override
- public boolean evaluate( final Object principal, final Action action, final SecNode graphIRI,
- final SecTriple triple )
+ public boolean evaluate( final Object principal, final Action action, final Node graphIRI,
+ final Triple triple )
{
if (forceTripleChecks)
{
- if (triple.getSubject().equals(SecNode.ANY)
- || triple.getPredicate().equals(SecNode.ANY)
- || triple.getObject().equals(SecNode.ANY))
+ if (triple.getSubject().equals(Node.ANY)
+ || triple.getPredicate().equals(Node.ANY)
+ || triple.getObject().equals(Node.ANY))
{
return false;
}
@@ -140,14 +142,14 @@ public class MockSecurityEvaluator implements SecurityEvaluator
}
@Override
- public boolean evaluate( final Object principal, final Set<Action> action, final SecNode uri )
+ public boolean evaluate( final Object principal, final Set<Action> action, final Node uri )
{
return evaluate(action);
}
@Override
- public boolean evaluate( final Object principal, final Set<Action> action, final SecNode graphIRI,
- final SecTriple triple )
+ public boolean evaluate( final Object principal, final Set<Action> action, final Node graphIRI,
+ final Triple triple )
{
for (final Action a : action)
{
@@ -160,7 +162,7 @@ public class MockSecurityEvaluator implements SecurityEvaluator
}
@Override
- public boolean evaluateAny( final Object principal, final Set<Action> action, final SecNode graphIRI )
+ public boolean evaluateAny( final Object principal, final Set<Action> action, final Node graphIRI )
{
for (final Action a : action)
{
@@ -174,14 +176,14 @@ public class MockSecurityEvaluator implements SecurityEvaluator
@Override
public boolean evaluateAny( final Object principal, final Set<Action> action,
- final SecNode graphIRI, final SecTriple triple )
+ final Node graphIRI, final Triple triple )
{
return evaluateAny( principal, action, graphIRI);
}
@Override
- public boolean evaluateUpdate( final Object principal, final SecNode graphIRI,
- final SecTriple from, final SecTriple to )
+ public boolean evaluateUpdate( final Object principal, final Node graphIRI,
+ final Triple from, final Triple to )
{
return evaluate(Action.Update);
}
@@ -191,7 +193,7 @@ public class MockSecurityEvaluator implements SecurityEvaluator
return Collections.emptySet();
}
- public Set<Action> getPermissions( final SecNode uri )
+ public Set<Action> getPermissions( final Node uri )
{
return Collections.emptySet();
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/test/java/org/apache/jena/permissions/ModelBasedSecurityEvaluator.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/test/java/org/apache/jena/permissions/ModelBasedSecurityEvaluator.java b/jena-permissions/src/test/java/org/apache/jena/permissions/ModelBasedSecurityEvaluator.java
index f61e1bb..61fc094 100644
--- a/jena-permissions/src/test/java/org/apache/jena/permissions/ModelBasedSecurityEvaluator.java
+++ b/jena-permissions/src/test/java/org/apache/jena/permissions/ModelBasedSecurityEvaluator.java
@@ -19,6 +19,8 @@ package org.apache.jena.permissions;
import java.util.Set;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.Triple;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.rdf.model.Model ;
@@ -33,39 +35,39 @@ public class ModelBasedSecurityEvaluator implements SecurityEvaluator {
@Override
- public boolean evaluate(final Object principal, Action action, SecNode graphIRI) {
+ public boolean evaluate(final Object principal, Action action, Node graphIRI) {
return true;
}
@Override
- public boolean evaluate(final Object principal, Action action, SecNode graphIRI, SecTriple triple) {
+ public boolean evaluate(final Object principal, Action action, Node graphIRI, Triple triple) {
return true;
}
@Override
- public boolean evaluate(final Object principal, Set<Action> actions, SecNode graphIRI) {
+ public boolean evaluate(final Object principal, Set<Action> actions, Node graphIRI) {
return true;
}
@Override
- public boolean evaluate(final Object principal, Set<Action> actions, SecNode graphIRI,
- SecTriple triple) {
+ public boolean evaluate(final Object principal, Set<Action> actions, Node graphIRI,
+ Triple triple) {
return true;
}
@Override
- public boolean evaluateAny(final Object principal, Set<Action> actions, SecNode graphIRI) {
+ public boolean evaluateAny(final Object principal, Set<Action> actions, Node graphIRI) {
return true;
}
@Override
- public boolean evaluateAny(final Object principal, Set<Action> actions, SecNode graphIRI,
- SecTriple triple) {
+ public boolean evaluateAny(final Object principal, Set<Action> actions, Node graphIRI,
+ Triple triple) {
return true;
}
@Override
- public boolean evaluateUpdate(final Object principal, SecNode graphIRI, SecTriple from, SecTriple to) {
+ public boolean evaluateUpdate(final Object principal, Node graphIRI, Triple from, Triple to) {
return true;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/test/java/org/apache/jena/permissions/StaticSecurityEvaluator.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/test/java/org/apache/jena/permissions/StaticSecurityEvaluator.java b/jena-permissions/src/test/java/org/apache/jena/permissions/StaticSecurityEvaluator.java
index 54ee9ef..94e47e9 100644
--- a/jena-permissions/src/test/java/org/apache/jena/permissions/StaticSecurityEvaluator.java
+++ b/jena-permissions/src/test/java/org/apache/jena/permissions/StaticSecurityEvaluator.java
@@ -19,61 +19,64 @@ package org.apache.jena.permissions;
import java.util.Set;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.graph.Triple;
import org.apache.jena.permissions.SecurityEvaluator;
public class StaticSecurityEvaluator implements SecurityEvaluator {
- private String user;
+ private Node user;
public StaticSecurityEvaluator( String user) {
- this.user = user;
+ this.user = NodeFactory.createURI( "urn:"+user );
}
public void setUser( String user )
{
- this.user = user;
+ this.user = NodeFactory.createURI( "urn:"+user );
}
@Override
- public boolean evaluate(final Object principal, Action action, SecNode graphIRI) {
+ public boolean evaluate(final Object principal, Action action, Node graphIRI) {
return true;
}
@Override
- public boolean evaluate(final Object principal, Action action, SecNode graphIRI, SecTriple triple) {
- return triple.getSubject().getValue().equals( "urn:"+principal );
+ public boolean evaluate(final Object principal, Action action, Node graphIRI, Triple triple) {
+ return triple.getSubject().equals( principal );
}
@Override
- public boolean evaluate(final Object principal, Set<Action> actions, SecNode graphIRI) {
+ public boolean evaluate(final Object principal, Set<Action> actions, Node graphIRI) {
return true;
}
@Override
- public boolean evaluate(final Object principal, Set<Action> actions, SecNode graphIRI,
- SecTriple triple) {
- return triple.getSubject().getValue().equals( "urn:"+principal );
+ public boolean evaluate(final Object principal, Set<Action> actions, Node graphIRI,
+ Triple triple) {
+ return triple.getSubject().equals( principal );
}
@Override
- public boolean evaluateAny(final Object principal, Set<Action> actions, SecNode graphIRI) {
+ public boolean evaluateAny(final Object principal, Set<Action> actions, Node graphIRI) {
return true;
}
@Override
- public boolean evaluateAny(final Object principal, Set<Action> actions, SecNode graphIRI,
- SecTriple triple) {
- return triple.getSubject().getValue().equals( "urn:"+principal );
+ public boolean evaluateAny(final Object principal, Set<Action> actions, Node graphIRI,
+ Triple triple) {
+ return triple.getSubject().equals( principal );
}
@Override
- public boolean evaluateUpdate(final Object principal, SecNode graphIRI, SecTriple from, SecTriple to) {
- return from.getSubject().getValue().equals( "urn:"+principal ) &&
- to.getSubject().getValue().equals( "urn:"+principal );
+ public boolean evaluateUpdate(final Object principal, Node graphIRI, Triple from, Triple to) {
+ return from.getSubject().equals( principal ) &&
+ to.getSubject().equals( principal );
}
@Override
- public Object getPrincipal() {
+ public Node getPrincipal() {
return user;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/test/java/org/apache/jena/permissions/contract/graph/CachedSecurityEvaluatorTest.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/test/java/org/apache/jena/permissions/contract/graph/CachedSecurityEvaluatorTest.java b/jena-permissions/src/test/java/org/apache/jena/permissions/contract/graph/CachedSecurityEvaluatorTest.java
index 688ffd4..7a16a7c 100644
--- a/jena-permissions/src/test/java/org/apache/jena/permissions/contract/graph/CachedSecurityEvaluatorTest.java
+++ b/jena-permissions/src/test/java/org/apache/jena/permissions/contract/graph/CachedSecurityEvaluatorTest.java
@@ -18,6 +18,8 @@
package org.apache.jena.permissions.contract.graph;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.permissions.StaticSecurityEvaluator;
import org.apache.jena.permissions.impl.CachedSecurityEvaluator;
@@ -32,15 +34,15 @@ public class CachedSecurityEvaluatorTest {
public CachedSecurityEvaluatorTest() {
securityEvaluator = new StaticSecurityEvaluator( "bob" );
- cachedEvaluator = new CachedSecurityEvaluator( securityEvaluator, "ted" );
+ cachedEvaluator = new CachedSecurityEvaluator( securityEvaluator, NodeFactory.createURI("urn:ted") );
}
@Test
public void testGetPrincipal()
{
- assertEquals( "bob", securityEvaluator.getPrincipal());
- assertEquals( "ted", cachedEvaluator.getPrincipal());
+ assertEquals( "urn:bob", securityEvaluator.getPrincipal().getURI());
+ assertEquals( "urn:ted", ((Node)cachedEvaluator.getPrincipal()).getURI());
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/test/java/org/apache/jena/permissions/graph/CrossIDGraphEventManagerTest.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/test/java/org/apache/jena/permissions/graph/CrossIDGraphEventManagerTest.java b/jena-permissions/src/test/java/org/apache/jena/permissions/graph/CrossIDGraphEventManagerTest.java
index e9af258..814e637 100644
--- a/jena-permissions/src/test/java/org/apache/jena/permissions/graph/CrossIDGraphEventManagerTest.java
+++ b/jena-permissions/src/test/java/org/apache/jena/permissions/graph/CrossIDGraphEventManagerTest.java
@@ -43,11 +43,11 @@ public class CrossIDGraphEventManagerTest {
g = GraphFactory.createDefaultGraph();
g.add(new Triple(NodeFactory.createURI("urn:ann"), NodeFactory
- .createURI("http://example.com/v"), NodeFactory.createAnon()));
+ .createURI("http://example.com/v"), NodeFactory.createBlankNode()));
g.add(new Triple(NodeFactory.createURI("urn:bob"), NodeFactory
- .createURI("http://example.com/v"), NodeFactory.createAnon()));
+ .createURI("http://example.com/v"), NodeFactory.createBlankNode()));
g.add(new Triple(NodeFactory.createURI("urn:ann"), NodeFactory
- .createURI("http://example.com/v2"), NodeFactory.createAnon()));
+ .createURI("http://example.com/v2"), NodeFactory.createBlankNode()));
sg = Factory.getInstance(securityEvaluator,
"http://example.com/testGraph", g);
@@ -62,13 +62,13 @@ public class CrossIDGraphEventManagerTest {
@Test
public void notificationsTest() {
sg.add(new Triple(NodeFactory.createURI("urn:bob"), NodeFactory
- .createURI("http://example.com/v2"), NodeFactory.createAnon()));
+ .createURI("http://example.com/v2"), NodeFactory.createBlankNode()));
Assert.assertTrue("Should recorded add", bobListener.isAdd());
Assert.assertFalse("Should not have recorded add", annListener.isAdd());
sg.delete(new Triple(NodeFactory.createURI("urn:bob"), NodeFactory
- .createURI("http://example.com/v2"), NodeFactory.createAnon()));
+ .createURI("http://example.com/v2"), NodeFactory.createBlankNode()));
Assert.assertTrue("Should recorded delete", bobListener.isDelete());
Assert.assertFalse("Should not have recorded delete",
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/test/java/org/apache/jena/permissions/impl/SecuredItemImplTest.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/test/java/org/apache/jena/permissions/impl/SecuredItemImplTest.java b/jena-permissions/src/test/java/org/apache/jena/permissions/impl/SecuredItemImplTest.java
new file mode 100644
index 0000000..e6ed8c5
--- /dev/null
+++ b/jena-permissions/src/test/java/org/apache/jena/permissions/impl/SecuredItemImplTest.java
@@ -0,0 +1,215 @@
+package org.apache.jena.permissions.impl;
+
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.graph.Triple;
+import org.apache.jena.permissions.SecurityEvaluator;
+import org.apache.jena.permissions.SecurityEvaluator.Action;
+import org.apache.jena.sparql.core.Var;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+
+public class SecuredItemImplTest {
+ private SecurityEvaluator evaluator = mock(SecurityEvaluator.class);
+ private ItemHolder<?,?> holder = mock(ItemHolder.class);
+ private ArgumentCaptor<Object> principal;
+ private ArgumentCaptor<Action> action;
+ private ArgumentCaptor<Node> modelNode;
+ private ArgumentCaptor<Triple> triple;
+ private SecuredItemImpl securedItemImpl = new SecuredItemImpl(evaluator, "urn:name", holder) {} ;
+ private static String PRINCIPAL = "principal";
+
+ @Before
+ public void setup() {
+ principal = ArgumentCaptor.forClass(Object.class);
+ action = ArgumentCaptor.forClass(Action.class);
+ modelNode = ArgumentCaptor.forClass(Node.class);
+ triple = ArgumentCaptor.forClass(Triple.class);
+ }
+
+ @Test
+ public void canRead()
+ {
+ // Triple.ANY
+ when( evaluator.getPrincipal() ).thenReturn( PRINCIPAL );
+ when( evaluator.evaluate( any(), any(), any(), any())).thenReturn( Boolean.TRUE);
+ assertTrue( securedItemImpl.canRead( Triple.ANY ) );
+ verify( evaluator ).evaluate( principal.capture(), action.capture(), modelNode.capture(), triple.capture());
+
+ Triple t = triple.getValue();
+ assertEquals( Node.ANY, t.getSubject() );
+ assertEquals( Node.ANY, t.getPredicate() );
+ assertEquals( Node.ANY, t.getObject() );
+
+ Node n = modelNode.getValue();
+ assertEquals( NodeFactory.createURI( "urn:name" ), n );
+
+ Object p = principal.getValue();
+ assertEquals( PRINCIPAL, p );
+
+ Action a = action.getValue();
+ assertEquals( Action.Read, a );
+
+ reset( evaluator );
+
+ // FUTURE ANY Variable
+ when( evaluator.getPrincipal() ).thenReturn( PRINCIPAL );
+ when( evaluator.evaluate( any(), any(), any(), any())).thenReturn( Boolean.TRUE);
+ Triple target = new Triple( SecurityEvaluator.FUTURE, Node.ANY, Var.alloc( "var"));
+ assertTrue( securedItemImpl.canRead( target ) );
+ verify( evaluator ).evaluate( principal.capture(), action.capture(), modelNode.capture(), triple.capture());
+
+ t = triple.getValue();
+ assertEquals( SecurityEvaluator.FUTURE, t.getSubject() );
+ assertEquals( Node.ANY, t.getPredicate() );
+ assertEquals( SecurityEvaluator.VARIABLE, t.getObject() );
+
+ n = modelNode.getValue();
+ assertEquals( NodeFactory.createURI( "urn:name" ), n );
+
+ p = principal.getValue();
+ assertEquals( PRINCIPAL, p );
+
+ a = action.getValue();
+ assertEquals( Action.Read, a );
+ }
+
+ @Test
+ public void canCreate()
+ {
+ // Triple.ANY
+ when( evaluator.getPrincipal() ).thenReturn( PRINCIPAL );
+ when( evaluator.evaluate( any(), any(), any(), any())).thenReturn( Boolean.TRUE);
+ assertTrue( securedItemImpl.canCreate( Triple.ANY ) );
+ verify( evaluator ).evaluate( principal.capture(), action.capture(), modelNode.capture(), triple.capture());
+
+ Triple t = triple.getValue();
+ assertEquals( Node.ANY, t.getSubject() );
+ assertEquals( Node.ANY, t.getPredicate() );
+ assertEquals( Node.ANY, t.getObject() );
+
+ Node n = modelNode.getValue();
+ assertEquals( NodeFactory.createURI( "urn:name" ), n );
+
+ Object p = principal.getValue();
+ assertEquals( PRINCIPAL, p );
+
+ Action a = action.getValue();
+ assertEquals( Action.Create, a );
+
+ reset( evaluator );
+
+ // FUTURE ANY Variable
+ when( evaluator.getPrincipal() ).thenReturn( PRINCIPAL );
+ when( evaluator.evaluate( any(), any(), any(), any())).thenReturn( Boolean.TRUE);
+ Triple target = new Triple( SecurityEvaluator.FUTURE, Node.ANY, Var.alloc( "var"));
+ assertTrue( securedItemImpl.canCreate( target ) );
+ verify( evaluator ).evaluate( principal.capture(), action.capture(), modelNode.capture(), triple.capture());
+
+ t = triple.getValue();
+ assertEquals( SecurityEvaluator.FUTURE, t.getSubject() );
+ assertEquals( Node.ANY, t.getPredicate() );
+ assertEquals( SecurityEvaluator.VARIABLE, t.getObject() );
+
+ n = modelNode.getValue();
+ assertEquals( NodeFactory.createURI( "urn:name" ), n );
+
+ p = principal.getValue();
+ assertEquals( PRINCIPAL, p );
+
+ a = action.getValue();
+ assertEquals( Action.Create, a );
+ }
+
+ @Test
+ public void canUpdate()
+ {
+ // Triple.ANY
+ when( evaluator.getPrincipal() ).thenReturn( PRINCIPAL );
+ when( evaluator.evaluateUpdate( any(), any(), any(), any())).thenReturn( Boolean.TRUE);
+ assertTrue( securedItemImpl.canUpdate( Triple.ANY, Triple.ANY ) );
+ verify( evaluator ).evaluateUpdate( principal.capture(), modelNode.capture(), triple.capture(), any());
+
+ Triple t = triple.getValue();
+ assertEquals( Node.ANY, t.getSubject() );
+ assertEquals( Node.ANY, t.getPredicate() );
+ assertEquals( Node.ANY, t.getObject() );
+
+ Node n = modelNode.getValue();
+ assertEquals( NodeFactory.createURI( "urn:name" ), n );
+
+ Object p = principal.getValue();
+ assertEquals( PRINCIPAL, p );
+
+ reset( evaluator );
+
+ // FUTURE ANY Variable
+ when( evaluator.getPrincipal() ).thenReturn( PRINCIPAL );
+ when( evaluator.evaluateUpdate( any(), any(), any(), any())).thenReturn( Boolean.TRUE);
+ Triple target = new Triple( SecurityEvaluator.FUTURE, Node.ANY, Var.alloc( "var"));
+ assertTrue( securedItemImpl.canUpdate( target, Triple.ANY ) );
+ verify( evaluator ).evaluateUpdate( principal.capture(), modelNode.capture(), triple.capture(), any());
+
+ t = triple.getValue();
+ assertEquals( SecurityEvaluator.FUTURE, t.getSubject() );
+ assertEquals( Node.ANY, t.getPredicate() );
+ assertEquals( SecurityEvaluator.VARIABLE, t.getObject() );
+
+ n = modelNode.getValue();
+ assertEquals( NodeFactory.createURI( "urn:name" ), n );
+
+ p = principal.getValue();
+ assertEquals( PRINCIPAL, p );
+ }
+
+ @Test
+ public void canDelete()
+ {
+ // Triple.ANY
+ when( evaluator.getPrincipal() ).thenReturn( PRINCIPAL );
+ when( evaluator.evaluate( any(), any(), any(), any())).thenReturn( Boolean.TRUE);
+ assertTrue( securedItemImpl.canDelete( Triple.ANY ) );
+ verify( evaluator ).evaluate( principal.capture(), action.capture(), modelNode.capture(), triple.capture());
+
+ Triple t = triple.getValue();
+ assertEquals( Node.ANY, t.getSubject() );
+ assertEquals( Node.ANY, t.getPredicate() );
+ assertEquals( Node.ANY, t.getObject() );
+
+ Node n = modelNode.getValue();
+ assertEquals( NodeFactory.createURI( "urn:name" ), n );
+
+ Object p = principal.getValue();
+ assertEquals( PRINCIPAL, p );
+
+ Action a = action.getValue();
+ assertEquals( Action.Delete, a );
+
+ reset( evaluator );
+
+ // FUTURE ANY Variable
+ when( evaluator.getPrincipal() ).thenReturn( PRINCIPAL );
+ when( evaluator.evaluate( any(), any(), any(), any())).thenReturn( Boolean.TRUE);
+ Triple target = new Triple( SecurityEvaluator.FUTURE, Node.ANY, Var.alloc( "var"));
+ assertTrue( securedItemImpl.canDelete( target ) );
+ verify( evaluator ).evaluate( principal.capture(), action.capture(), modelNode.capture(), triple.capture());
+
+ t = triple.getValue();
+ assertEquals( SecurityEvaluator.FUTURE, t.getSubject() );
+ assertEquals( Node.ANY, t.getPredicate() );
+ assertEquals( SecurityEvaluator.VARIABLE, t.getObject() );
+
+ n = modelNode.getValue();
+ assertEquals( NodeFactory.createURI( "urn:name" ), n );
+
+ p = principal.getValue();
+ assertEquals( PRINCIPAL, p );
+
+ a = action.getValue();
+ assertEquals( Action.Delete, a );
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/test/java/org/apache/jena/permissions/model/SecuredModelDetailTest.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/test/java/org/apache/jena/permissions/model/SecuredModelDetailTest.java b/jena-permissions/src/test/java/org/apache/jena/permissions/model/SecuredModelDetailTest.java
index 30f7533..51375ac 100644
--- a/jena-permissions/src/test/java/org/apache/jena/permissions/model/SecuredModelDetailTest.java
+++ b/jena-permissions/src/test/java/org/apache/jena/permissions/model/SecuredModelDetailTest.java
@@ -22,7 +22,9 @@ import java.security.Principal ;
import java.util.Set ;
import org.apache.http.auth.BasicUserPrincipal ;
+import org.apache.jena.graph.Node;
import org.apache.jena.graph.NodeFactory ;
+import org.apache.jena.graph.Triple;
import org.apache.jena.permissions.Factory ;
import org.apache.jena.permissions.SecurityEvaluator ;
import org.apache.jena.rdf.model.* ;
@@ -290,7 +292,7 @@ public class SecuredModelDetailTest {
@Override
public boolean evaluate(Object principal, Action action,
- SecNode graphIRI) {
+ Node graphIRI) {
// we allow any action on a graph.
return true;
}
@@ -305,18 +307,14 @@ public class SecuredModelDetailTest {
return true;
}
- private boolean evaluate( SecNode node )
+ private boolean evaluate( Node node )
{
- if (node.equals( SecNode.ANY )) {
+ if (node.equals( Node.ANY )) {
return false; // all wild cards are false
}
- if (node.getType().equals( SecNode.Type.URI)) {
- Resource r = model.createResource( node.getValue() );
- return evaluate( r );
- }
- else if (node.getType().equals( SecNode.Type.Anonymous)) {
- Resource r = model.getRDFNode( NodeFactory.createBlankNode( node.getValue()) ).asResource();
+ if (node.isURI() || node.isBlank()) {
+ Resource r = model.getRDFNode( node ).asResource();
return evaluate( r );
} else {
return true;
@@ -324,7 +322,7 @@ public class SecuredModelDetailTest {
}
- private boolean evaluate(SecTriple triple) {
+ private boolean evaluate(Triple triple) {
return evaluate(triple.getSubject())
&& evaluate(triple.getObject())
&& evaluate(triple.getPredicate());
@@ -332,37 +330,37 @@ public class SecuredModelDetailTest {
@Override
public boolean evaluate(Object principal, Action action,
- SecNode graphIRI, SecTriple triple) {
+ Node graphIRI, Triple triple) {
return evaluate(triple);
}
@Override
public boolean evaluate(Object principal, Set<Action> actions,
- SecNode graphIRI) {
+ Node graphIRI) {
return true;
}
@Override
public boolean evaluate(Object principal, Set<Action> actions,
- SecNode graphIRI, SecTriple triple) {
+ Node graphIRI, Triple triple) {
return evaluate(triple);
}
@Override
public boolean evaluateAny(Object principal, Set<Action> actions,
- SecNode graphIRI) {
+ Node graphIRI) {
return true;
}
@Override
public boolean evaluateAny(Object principal, Set<Action> actions,
- SecNode graphIRI, SecTriple triple) {
+ Node graphIRI, Triple triple) {
return evaluate(triple);
}
@Override
- public boolean evaluateUpdate(Object principal, SecNode graphIRI,
- SecTriple from, SecTriple to) {
+ public boolean evaluateUpdate(Object principal, Node graphIRI,
+ Triple from, Triple to) {
return evaluate(from) && evaluate(to);
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/test/java/org/apache/jena/permissions/query/DataSetTest.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/test/java/org/apache/jena/permissions/query/DataSetTest.java b/jena-permissions/src/test/java/org/apache/jena/permissions/query/DataSetTest.java
index ae9fcba..12ed85b 100644
--- a/jena-permissions/src/test/java/org/apache/jena/permissions/query/DataSetTest.java
+++ b/jena-permissions/src/test/java/org/apache/jena/permissions/query/DataSetTest.java
@@ -19,9 +19,10 @@ package org.apache.jena.permissions.query;
import org.apache.jena.permissions.Factory;
import org.apache.jena.permissions.MockSecurityEvaluator;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode.Type;
import org.apache.jena.permissions.model.SecuredModel;
import org.apache.jena.permissions.query.SecuredQueryEngineFactory;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.Triple;
import org.apache.jena.query.*;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.sparql.core.DatasetGraph;
@@ -108,10 +109,9 @@ public class DataSetTest {
@Override
public boolean evaluate(final Object principal,
- final Action action, final SecNode graphIRI,
- final SecTriple triple) {
- if (triple.getSubject().equals(
- new SecNode(Type.URI, "http://example.com/resource/1"))) {
+ final Action action, final Node graphIRI,
+ final Triple triple) {
+ if (triple.getSubject().isURI() && triple.getSubject().getURI().equals( "http://example.com/resource/1")) {
return false;
}
return super.evaluate(principal, action, graphIRI, triple);
@@ -150,10 +150,10 @@ public class DataSetTest {
@Override
public boolean evaluate(final Object principal,
- final Action action, final SecNode graphIRI,
- final SecTriple triple) {
- if (triple.getSubject().equals(
- new SecNode(Type.URI, "http://example.com/resource/1"))) {
+ final Action action, final Node graphIRI,
+ final Triple triple) {
+ if (triple.getSubject().isURI() && triple.getSubject().getURI().equals(
+ "http://example.com/resource/1")) {
return false;
}
return super.evaluate(principal, action, graphIRI, triple);
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/test/java/org/apache/jena/permissions/query/QueryEngineTest.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/test/java/org/apache/jena/permissions/query/QueryEngineTest.java b/jena-permissions/src/test/java/org/apache/jena/permissions/query/QueryEngineTest.java
index 5d7172d..daeff21 100644
--- a/jena-permissions/src/test/java/org/apache/jena/permissions/query/QueryEngineTest.java
+++ b/jena-permissions/src/test/java/org/apache/jena/permissions/query/QueryEngineTest.java
@@ -20,9 +20,10 @@ package org.apache.jena.permissions.query;
import org.apache.jena.permissions.Factory;
import org.apache.jena.permissions.MockSecurityEvaluator;
import org.apache.jena.permissions.SecurityEvaluator;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode.Type;
import org.apache.jena.permissions.model.SecuredModel;
import org.apache.jena.permissions.query.SecuredQueryEngineFactory;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.Triple;
import org.apache.jena.query.QueryExecution;
import org.apache.jena.query.QueryExecutionFactory;
import org.apache.jena.query.QuerySolution;
@@ -147,10 +148,10 @@ public class QueryEngineTest {
@Override
public boolean evaluate(final Object principal,
- final Action action, final SecNode graphIRI,
- final SecTriple triple) {
- if (triple.getSubject().equals(
- new SecNode(Type.URI, "http://example.com/resource/1"))) {
+ final Action action, final Node graphIRI,
+ final Triple triple) {
+ if (triple.getSubject().isURI() && triple.getSubject().getURI().equals(
+ "http://example.com/resource/1")) {
return false;
}
return super.evaluate(principal, action, graphIRI, triple);
@@ -189,9 +190,9 @@ public class QueryEngineTest {
@Override
public boolean evaluate(Object principal, final Action action,
- final SecNode graphIRI, final SecTriple triple) {
- if (triple.getSubject().equals(
- new SecNode(Type.URI, "http://example.com/resource/1"))) {
+ final Node graphIRI, final Triple triple) {
+ if (triple.getSubject().isURI() && triple.getSubject().getURI().equals(
+ "http://example.com/resource/1")) {
return false;
}
return super.evaluate(principal, action, graphIRI, triple);
[3/4] jena git commit: initial changes on perm-interface-refactor as
part of fix for JENA-992
Posted by cl...@apache.org.
initial changes on perm-interface-refactor as part of fix for JENA-992
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/1dd6cfd1
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/1dd6cfd1
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/1dd6cfd1
Branch: refs/heads/master
Commit: 1dd6cfd1b9b1457af7a7942cd9912c75852c1280
Parents: 2e99c45
Author: Claude Warren <cl...@apache.org>
Authored: Sat Jul 18 20:49:13 2015 +0100
Committer: Claude Warren <cl...@apache.org>
Committed: Sat Jul 18 20:49:13 2015 +0100
----------------------------------------------------------------------
jena-permissions/pom.xml | 4 +
.../permissions/example/ExampleEvaluator.java | 41 +-
.../example/ShiroExampleEvaluator.java | 45 +-
.../apache/jena/permissions/SecuredItem.java | 241 ++
.../jena/permissions/SecurityEvaluator.java | 405 +---
.../permissions/graph/SecuredCapabilities.java | 14 +-
.../jena/permissions/graph/SecuredGraph.java | 10 +-
.../graph/SecuredGraphEventManager.java | 54 +-
.../permissions/graph/SecuredPrefixMapping.java | 2 +-
.../graph/impl/SecuredGraphImpl.java | 2 +-
.../impl/CachedSecurityEvaluator.java | 18 +-
.../jena/permissions/impl/ItemHolder.java | 1 +
.../jena/permissions/impl/SecuredItem.java | 195 --
.../jena/permissions/impl/SecuredItemImpl.java | 301 ++-
.../permissions/impl/SecuredItemInvoker.java | 2 +
.../jena/permissions/model/SecuredRDFNode.java | 2 +-
.../permissions/model/SecuredStatement.java | 2 +-
.../model/impl/SecuredModelImpl.java | 2238 +++++++-----------
.../model/impl/SecuredRDFListImpl.java | 61 +-
.../model/impl/SecuredRSIterator.java | 6 +-
.../model/impl/SecuredResourceImpl.java | 2 +-
.../permissions/model/impl/SecuredSelector.java | 19 +-
.../model/impl/SecuredStatementImpl.java | 6 +-
.../permissions/query/SecuredQueryEngine.java | 25 +-
.../permissions/query/rewriter/OpRewriter.java | 16 +-
.../query/rewriter/SecuredFunction.java | 24 +-
.../permissions/utils/PermStatementFilter.java | 10 +-
.../permissions/utils/PermTripleFilter.java | 12 +-
.../permissions/utils/RDFListSecFilter.java | 6 +-
.../jena/permissions/MockSecurityEvaluator.java | 30 +-
.../ModelBasedSecurityEvaluator.java | 20 +-
.../permissions/StaticSecurityEvaluator.java | 39 +-
.../graph/CachedSecurityEvaluatorTest.java | 8 +-
.../graph/CrossIDGraphEventManagerTest.java | 10 +-
.../permissions/impl/SecuredItemImplTest.java | 215 ++
.../model/SecuredModelDetailTest.java | 32 +-
.../jena/permissions/query/DataSetTest.java | 18 +-
.../jena/permissions/query/QueryEngineTest.java | 17 +-
38 files changed, 1835 insertions(+), 2318 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/pom.xml
----------------------------------------------------------------------
diff --git a/jena-permissions/pom.xml b/jena-permissions/pom.xml
index 48d9026..bd00639 100644
--- a/jena-permissions/pom.xml
+++ b/jena-permissions/pom.xml
@@ -184,5 +184,9 @@
<version>1.2.2</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ </dependency>
</dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/example/java/org/apache/jena/permissions/example/ExampleEvaluator.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/example/java/org/apache/jena/permissions/example/ExampleEvaluator.java b/jena-permissions/src/example/java/org/apache/jena/permissions/example/ExampleEvaluator.java
index d42ccf8..f67aa40 100644
--- a/jena-permissions/src/example/java/org/apache/jena/permissions/example/ExampleEvaluator.java
+++ b/jena-permissions/src/example/java/org/apache/jena/permissions/example/ExampleEvaluator.java
@@ -21,7 +21,8 @@ import java.security.Principal ;
import java.util.Set ;
import org.apache.http.auth.BasicUserPrincipal ;
-import org.apache.jena.graph.NodeFactory ;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.Triple;
import org.apache.jena.permissions.SecurityEvaluator ;
import org.apache.jena.rdf.model.* ;
import org.apache.jena.vocabulary.RDF ;
@@ -49,7 +50,7 @@ public class ExampleEvaluator implements SecurityEvaluator {
}
@Override
- public boolean evaluate(Object principal, Action action, SecNode graphIRI) {
+ public boolean evaluate(Object principal, Action action, Node graphIRI) {
// we allow any action on a graph.
return true;
}
@@ -66,62 +67,54 @@ public class ExampleEvaluator implements SecurityEvaluator {
return true;
}
- private boolean evaluate( Object principal, SecNode node )
+ private boolean evaluate( Object principal, Node node )
{
- if (node.equals( SecNode.ANY )) {
+ if (node.equals( Node.ANY )) {
return false; // all wild cards are false
}
- if (node.getType().equals( SecNode.Type.URI)) {
- Resource r = model.createResource( node.getValue() );
+ if (node.isURI() || node.isBlank()) {
+ Resource r = model.getRDFNode( node ).asResource();
return evaluate( principal, r );
}
- else if (node.getType().equals( SecNode.Type.Anonymous)) {
- Resource r = model.getRDFNode( NodeFactory.createBlankNode( node.getValue()) ).asResource();
- return evaluate( principal, r );
- }
- else
- {
- return true;
- }
-
+ return true;
}
- private boolean evaluate( Object principal, SecTriple triple ) {
+ private boolean evaluate( Object principal, Triple triple ) {
return evaluate( principal, triple.getSubject()) &&
evaluate( principal, triple.getObject()) &&
evaluate( principal, triple.getPredicate());
}
@Override
- public boolean evaluate(Object principal, Action action, SecNode graphIRI, SecTriple triple) {
+ public boolean evaluate(Object principal, Action action, Node graphIRI, Triple triple) {
return evaluate( principal, triple );
}
@Override
- public boolean evaluate(Object principal, Set<Action> actions, SecNode graphIRI) {
+ public boolean evaluate(Object principal, Set<Action> actions, Node graphIRI) {
return true;
}
@Override
- public boolean evaluate(Object principal, Set<Action> actions, SecNode graphIRI,
- SecTriple triple) {
+ public boolean evaluate(Object principal, Set<Action> actions, Node graphIRI,
+ Triple triple) {
return evaluate( principal, triple );
}
@Override
- public boolean evaluateAny(Object principal, Set<Action> actions, SecNode graphIRI) {
+ public boolean evaluateAny(Object principal, Set<Action> actions, Node graphIRI) {
return true;
}
@Override
- public boolean evaluateAny(Object principal, Set<Action> actions, SecNode graphIRI,
- SecTriple triple) {
+ public boolean evaluateAny(Object principal, Set<Action> actions, Node graphIRI,
+ Triple triple) {
return evaluate( principal, triple );
}
@Override
- public boolean evaluateUpdate(Object principal, SecNode graphIRI, SecTriple from, SecTriple to) {
+ public boolean evaluateUpdate(Object principal, Node graphIRI, Triple from, Triple to) {
return evaluate( principal, from ) && evaluate( principal, to );
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/example/java/org/apache/jena/permissions/example/ShiroExampleEvaluator.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/example/java/org/apache/jena/permissions/example/ShiroExampleEvaluator.java b/jena-permissions/src/example/java/org/apache/jena/permissions/example/ShiroExampleEvaluator.java
index db8a2dd..6feeff1 100644
--- a/jena-permissions/src/example/java/org/apache/jena/permissions/example/ShiroExampleEvaluator.java
+++ b/jena-permissions/src/example/java/org/apache/jena/permissions/example/ShiroExampleEvaluator.java
@@ -19,7 +19,9 @@ package org.apache.jena.permissions.example;
import java.util.Set ;
+import org.apache.jena.graph.Node;
import org.apache.jena.graph.NodeFactory ;
+import org.apache.jena.graph.Triple;
import org.apache.jena.permissions.SecurityEvaluator ;
import org.apache.jena.rdf.model.* ;
import org.apache.jena.vocabulary.RDF ;
@@ -57,14 +59,14 @@ public class ShiroExampleEvaluator implements SecurityEvaluator {
* We allow any action on the graph itself, so this is always true.
*/
@Override
- public boolean evaluate(Object principal, Action action, SecNode graphIRI) {
+ public boolean evaluate(Object principal, Action action, Node graphIRI) {
// we allow any action on a graph.
return true;
}
/**
* This is our internal check to see if the user may access the resource.
- * This method is called from the evauate(Object,SecNode) method.
+ * This method is called from the evauate(Object,Node) method.
* A user may only access the resource if they are authenticated, and are either the
* sender or the recipient.
* Additionally the admin can always see the messages.
@@ -107,32 +109,23 @@ public class ShiroExampleEvaluator implements SecurityEvaluator {
* @param node
* @return
*/
- private boolean evaluate( Object principal, SecNode node )
+ private boolean evaluate( Object principal, Node node )
{
// Access to wild card is false -- this forces checks to the acutal nodes
// to be returned.
// we could have checked for admin access here and returned true since the admin
// can see any node.
- if (node.equals( SecNode.ANY )) {
+ if (node.equals( Node.ANY )) {
return false;
}
- // URI nodes are retrieved from the model and evaluated
- if (node.getType().equals( SecNode.Type.URI)) {
- Resource r = model.createResource( node.getValue() );
- return evaluate( principal, r );
- }
- // anonymous nodes have to be retrieved from the model as anonymous nodes.
- else if (node.getType().equals( SecNode.Type.Anonymous)) {
- Resource r = model.getRDFNode( NodeFactory.createBlankNode( node.getValue()) ).asResource();
+ // URI nodes and blank nodes are retrieved from the model and evaluated
+ if (node.isURI() || node.isBlank()) {
+ Resource r = model.getRDFNode( node ).asResource();
return evaluate( principal, r );
}
// anything else (literals) can be seen.
- else
- {
- return true;
- }
-
+ return true;
}
/**
@@ -141,7 +134,7 @@ public class ShiroExampleEvaluator implements SecurityEvaluator {
* @param triple
* @return
*/
- private boolean evaluate( Object principal, SecTriple triple ) {
+ private boolean evaluate( Object principal, Triple triple ) {
// we could have checked here to see if the principal was the admin and
// just returned true since the admin can perform any operation on any triple.
return evaluate( principal, triple.getSubject()) &&
@@ -155,7 +148,7 @@ public class ShiroExampleEvaluator implements SecurityEvaluator {
* upon action this method would sort those out appropriately.
*/
@Override
- public boolean evaluate(Object principal, Action action, SecNode graphIRI, SecTriple triple) {
+ public boolean evaluate(Object principal, Action action, Node graphIRI, Triple triple) {
// we could have checked here to see if the principal was the admin and
// just returned true since the admin can perform any operation on any triple.
return evaluate( principal, triple );
@@ -169,7 +162,7 @@ public class ShiroExampleEvaluator implements SecurityEvaluator {
* graph.
*/
@Override
- public boolean evaluate(Object principal, Set<Action> actions, SecNode graphIRI) {
+ public boolean evaluate(Object principal, Set<Action> actions, Node graphIRI) {
return true;
}
@@ -179,8 +172,8 @@ public class ShiroExampleEvaluator implements SecurityEvaluator {
* for a single action.
*/
@Override
- public boolean evaluate(Object principal, Set<Action> actions, SecNode graphIRI,
- SecTriple triple) {
+ public boolean evaluate(Object principal, Set<Action> actions, Node graphIRI,
+ Triple triple) {
return evaluate( principal, triple );
}
@@ -192,7 +185,7 @@ public class ShiroExampleEvaluator implements SecurityEvaluator {
* graph.
*/
@Override
- public boolean evaluateAny(Object principal, Set<Action> actions, SecNode graphIRI) {
+ public boolean evaluateAny(Object principal, Set<Action> actions, Node graphIRI) {
return true;
}
@@ -202,8 +195,8 @@ public class ShiroExampleEvaluator implements SecurityEvaluator {
* for a single action.
*/
@Override
- public boolean evaluateAny(Object principal, Set<Action> actions, SecNode graphIRI,
- SecTriple triple) {
+ public boolean evaluateAny(Object principal, Set<Action> actions, Node graphIRI,
+ Triple triple) {
return evaluate( principal, triple );
}
@@ -213,7 +206,7 @@ public class ShiroExampleEvaluator implements SecurityEvaluator {
* they have access to. (e.g. they can not remvoe themself from the messsage).
*/
@Override
- public boolean evaluateUpdate(Object principal, SecNode graphIRI, SecTriple from, SecTriple to) {
+ public boolean evaluateUpdate(Object principal, Node graphIRI, Triple from, Triple to) {
return evaluate( principal, from ) && evaluate( principal, to );
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/SecuredItem.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/SecuredItem.java b/jena-permissions/src/main/java/org/apache/jena/permissions/SecuredItem.java
new file mode 100644
index 0000000..6c4021f
--- /dev/null
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/SecuredItem.java
@@ -0,0 +1,241 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jena.permissions;
+
+import org.apache.jena.graph.FrontsTriple;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.Triple;
+
+/**
+ * The secured item interface is mixed into instances of secured objects by the
+ * proxy. It provides the security context for the security checks as well as
+ * several useful shorthand methods for common checks.
+ */
+public interface SecuredItem
+{
+
+ /**
+ * Utilities for SecuredItem implementations.
+ */
+ public static class Util
+ {
+ /**
+ * Secured items are equivalent if their security evaluators and
+ * modelIRIs are equal.
+ *
+ * @param si1
+ * A secured item to check
+ * @param si2
+ * A second secured item to check
+ * @return true if si1 is equivalent to si2.
+ */
+ public static boolean isEquivalent( final SecuredItem si1,
+ final SecuredItem si2 )
+ {
+ return si1.getSecurityEvaluator()
+ .equals(si2.getSecurityEvaluator())
+ && si1.getModelIRI().equals(si2.getModelIRI());
+ }
+
+ public static String modelPermissionMsg( final Node modelURI )
+ {
+ return String.format("Model permissions violation: %s", modelURI);
+ }
+
+ public static String triplePermissionMsg( final Node modelURI )
+ {
+ return String.format("Triple permissions violation: %s", modelURI);
+ }
+ }
+
+ /**
+ * @return true if the securedModel allows items to to be created.
+ */
+ public boolean canCreate();
+
+ /**
+ * Return true if the triple can be created.
+ * If any s,p or o is SecNode.ANY then this method must return false if
+ * there
+ * are
+ * any restrictions where the remaining nodes and held constant and the ANY
+ * node
+ * is allowed to vary.
+ *
+ * See canRead(Triple t)
+ *
+ * @param t
+ * The triple to check
+ * @return true if the triple can be created.
+ */
+ public boolean canCreate( Triple t );
+
+
+ /**
+ * Return true if the fronted triple can be created.
+ *
+ * See canRead(Triple t)
+ *
+ * @param t
+ * The fronted triple to check
+ * @return true if the triple can be created.
+ */
+ public boolean canCreate( FrontsTriple t );
+
+ /**
+ * @return true if the securedModel allows items to to be deleted.
+ */
+ public boolean canDelete();
+
+ /**
+ * Return true if the triple can be deleted.
+ * If any s,p or o is SecNode.ANY then this method must return false if
+ * there
+ * are
+ * any restrictions where the remaining nodes and held constant and the ANY
+ * node
+ * is allowed to vary.
+ *
+ * See canRead(Triple t)
+ *
+ * @param t
+ * The triple to check
+ * @return true if the triple can be deleted.
+ */
+ public boolean canDelete( Triple t );
+
+ /**
+ * Return true if the fronted triple can be deleted.
+ *
+ * See canRead(Triple t)
+ *
+ * @param t
+ * The fronted triple to check
+ * @return true if the triple can be deleted.
+ */
+ public boolean canDelete( FrontsTriple t );
+
+ /**
+ * @return true if the securedModel allows items to to be read.
+ */
+ public boolean canRead();
+
+ /**
+ * Return true if the triple can be read.
+ * If any s,p or o is SecNode.ANY then this method must return false if
+ * there
+ * are
+ * any restrictions where the remaining nodes and held constant and the ANY
+ * node
+ * is allowed to vary.
+ *
+ * (S, P, O) check if S,P,O can be read.
+ * (S, P, ANY) check if there are any S,P,x restrictions.
+ * (S, ANY, P) check if there are any S,x,P restrictions.
+ * (ANY, ANY, ANY) check if there are any restricitons on reading.
+ *
+ * @param t
+ * The triple to check
+ * @return true if the triple can be read.
+ */
+ public boolean canRead( Triple t );
+
+ /**
+ * Return true if the fronted triple can be read.
+ *
+ * @param t
+ * The frontedtriple to check
+ * @return true if the triple can be read.
+ */
+ public boolean canRead( FrontsTriple t );
+
+ /**
+ * @return true if the securedModel allows items to to be updated.
+ */
+ public boolean canUpdate();
+
+ /**
+ * Return true if the triple can be updated.
+ * If any s,p or o is SecNode.ANY then this method must return false if
+ * there
+ * are
+ * any restrictions where the remaining nodes and held constant and the ANY
+ * node
+ * is allowed to vary.
+ *
+ * See canRead(Triple t)
+ *
+ * @param from
+ * The triple that will be changed
+ * @param to
+ * The resulting triple.
+ * @return true if the from triple can be updated as the to triple.
+ */
+ public boolean canUpdate( Triple from, Triple to );
+
+ /**
+ * Return true if the fronted triple can be updated.
+ *
+ *
+ * See canUpdate(Triple from, Triple to)
+ *
+ * @param from
+ * The fronted triple that will be changed
+ * @param to
+ * The resulting fronted triple.
+ * @return true if the from triple can be updated as the to triple.
+ */
+ public boolean canUpdate( FrontsTriple from, FrontsTriple to );
+
+ @Override
+ public boolean equals( Object o );
+
+ /**
+ * @return the base item that is being secured.
+ */
+ public Object getBaseItem();
+
+ /**
+ * @return The IRI of the securedModel that the item belongs to.
+ */
+ public String getModelIRI();
+
+ /**
+ * @return The node representation of the securedModel IRI.
+ */
+ public Node getModelNode();
+
+ /**
+ * The SecurityEvaluator implementation that is being used to determine
+ * access.
+ *
+ * @return The SecurityEvaluator implementation.
+ */
+ public SecurityEvaluator getSecurityEvaluator();
+
+ /**
+ * Return true if this secured item is equivalent to another secured item.
+ * Generally implemented by calling SecuredItem.Util.isEquivalent
+ *
+ * @param securedItem
+ * the other secured item.
+ * @return True if they are equivalent, false otherwise.
+ */
+ public boolean isEquivalent( SecuredItem securedItem );
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/SecurityEvaluator.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/SecurityEvaluator.java b/jena-permissions/src/main/java/org/apache/jena/permissions/SecurityEvaluator.java
index bf52c5b..bb10e7c 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/SecurityEvaluator.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/SecurityEvaluator.java
@@ -22,14 +22,10 @@ import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.Set;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
-import org.apache.jena.graph.FrontsNode;
-import org.apache.jena.graph.FrontsTriple;
import org.apache.jena.graph.Node;
-import org.apache.jena.graph.NodeFactory;
import org.apache.jena.graph.Triple;
-import org.apache.jena.graph.impl.LiteralLabel;
-import org.apache.jena.graph.impl.LiteralLabelFactory;
+import org.apache.jena.graph.NodeFactory;
+
/**
* SecurityEvaluator.
@@ -79,8 +75,8 @@ import org.apache.jena.graph.impl.LiteralLabelFactory;
* If the system does support triple level security and is unable to verify that
* the user can execute the CRUD action against any arbitrary triple the system
* should return <code>false</code>. </li>
- * <li>See <code>SecNode.ANY</code>, <code>SecNode.FUTURE</code>, and
- * <code>SecNode.VARIABLE</code> for discussion of specifics of their respective
+ * <li>See <code>Node.ANY</code>, <code>SecurityEvaluator.FUTURE</code>, and
+ * <code>SecurityEvaluator.VARIABLE</code> for discussion of specifics of their respective
* usages.</li>
* </ul>
* </p>
@@ -116,317 +112,6 @@ public interface SecurityEvaluator {
}
/**
- * A node in the evaluation.
- * <p>
- * A node with no value represents a node of that type but unknown
- * exactitude. (e.g. <code>SecNode(URI,"")</code> is a URI but of unknown
- * value. Useful for systems that restrict type creation.
- * </p>
- * <p>
- * <code>SecNode(Anonymous,"")</code> represents an anonymous node that will
- * be created. Otherwise anonymous node values are the values within the
- * secured graph.
- * </p>
- * <p>
- * An "Any" node type matches any node.
- * </p>
- */
- public static class SecNode implements Comparable<SecNode>, FrontsNode {
-
- /**
- * The types of nodes.
- */
- public static enum Type {
- /**
- * A URI type node
- */
- URI,
- /**
- * A Literal node.
- */
- Literal,
- /**
- * An anonymous node. Also called a "blank" node.
- */
- Anonymous,
- /**
- * Any node.
- */
- Any
- }
-
- /**
- * Matches any node in the security system.
- * <p>
- * Used in triple checks as follows:
- * <dl>
- * <dt><code>(ANY, ANY, ANY)</code></dt>
- * <dd>Asks if the user may perform the action on any triple.</dd>
- * <dt><code>(X, ANY, ANY)</code></dt>
- * <dd>Asks if the user may perform the action against any triple where
- * X is the subject.</dd>
- * <dt><code>(ANY, X, ANY)</code></dt>
- * <dd>Asks if the user may perform the action against any triple where
- * X is the predicate.</dd>
- * <dt><code>(SecNode.ANY, SecNode.ANY, SecNode.X)</code></dt>
- * <dd>Asks if if the user may perform the action against any triple
- * where X is the object.</dd>
- * </dl>
- * The <code>ANY</code> may occur multiple times and may occur with the
- * <code>VARIABLE</code> and/or <code>FUTURE</code> nodes.
- * </p>
- */
- public static final SecNode ANY = new SecNode(Type.Any, "any");
-
- /**
- * Indicates a variable in the triple.
- * <p>
- * </p>
- * This differs from <code>ANY</code> in that the system is asking if
- * there are any prohibitions not if the user may perform. Thus queries
- * with the VARIABLE type node should return <code>true</code> where
- * <code>ANY</code> returns <code>false</code>. In general this type is
- * used in the query to determine if triple level filtering of results
- * must be performed.
- * <p>
- * </p>
- * <p>
- * <dl>
- * <dt><code>(VARIABLE, X, Y )</code></dt>
- * <dd>
- * Asks if there are any prohibitions against the user seeing all
- * subjects that have property X and object Y.</dd>
- * <dt>
- * <code>(X, VARIABLE, Y )</code></dt>
- * <dd>
- * Asks if there are any prohibitions against the user seeing all
- * predicates that have subject X and object Y.</dd>
- * <dt>
- * <code>(X, Y, VARIABLE)</code></dt>
- * <dd>
- * Asks if there are any prohibitions against the user seeing all
- * objects that have subject X and predicate Y.</dd>
- * </dl>
- * The <code>VARIABLE</code> may occur multiple times and may occur with
- * the <code>ANY</code> node.
- * </p>
- *
- */
- public static final SecNode VARIABLE = new SecNode(Type.Any, "variable");
-
- /**
- * This is an anonymous node that will be created in the future.
- * <p>
- * FUTURE is used to check that an anonymous node may be created in as
- * specific position in a triple.
- * </p>
- * <p>
- * <dl>
- * <dt><code>(FUTURE, X, Y )</code></dt>
- * <dd>
- * Asks if there the user may create an anonymous node that has property
- * X and object Y.</dd>
- * <dt>
- * <code>(X, Y, FUTURE)</code></dt>
- * <dd>
- * Asks if there the user may create an anonymous node that has subject
- * X and property Y.</dd>
- * </dl>
- * The <code>FUTURE</code> may occur multiple times and may occur with
- * the <code>ANY</code> node.
- * </p>
- */
- public static final SecNode FUTURE = new SecNode(Type.Anonymous, "");
-
- private final Type type;
- private final String value;
- private Integer hashCode;
-
- /**
- * Create a SecNode of the type and value.
- *
- * @param type
- * The type of the node
- * @param value
- * The value of the node. A null is interpreted as an empty
- * string.
- */
- public SecNode(final Type type, final String value) {
- this.type = type;
- this.value = value == null ? "" : value;
- }
-
- @Override
- public int compareTo(final SecNode node) {
- final int retval = type.compareTo(node.type);
- return retval == 0 ? value.compareTo(node.value) : retval;
- }
-
- @Override
- public boolean equals(final Object o) {
- if (o instanceof SecNode) {
- return this.compareTo((SecNode) o) == 0;
- }
- return false;
- }
-
- /**
- * Get the type of the node.
- *
- * @return The type of the node.
- */
- public Type getType() {
- return type;
- }
-
- /**
- * Get the value of the node.
- *
- * @return the value of the node
- */
- public String getValue() {
- return value;
- }
-
- @Override
- public int hashCode() {
- if (hashCode == null) {
- hashCode = new HashCodeBuilder().append(type).append(value)
- .toHashCode();
- }
- return hashCode;
- }
-
- @Override
- public String toString() {
- return String.format("[%s:%s]", getType(), getValue());
- }
-
- @Override
- public Node asNode() {
- switch (type) {
- case Anonymous:
- return NodeFactory.createBlankNode( value );
- case Any:
- return Node.ANY;
- case Literal:
- LiteralLabel lit = LiteralLabelFactory.create(value, (String)null);
- return NodeFactory.createLiteral(lit);
- case URI:
- return NodeFactory.createURI( value );
-
- default :
- return Node.ANY;
- }
- }
- }
-
- /**
- * An immutable triple of SecNodes.
- */
- public static class SecTriple implements Comparable<SecTriple>, FrontsTriple {
- private final SecNode subject;
- private final SecNode predicate;
- private final SecNode object;
- private transient Integer hashCode;
-
- /**
- * The triple of <code>(ANY, ANY, ANY)</code>.
- */
- public static final SecTriple ANY = new SecTriple(SecNode.ANY,
- SecNode.ANY, SecNode.ANY);
-
- /**
- * Create the sec triple
- *
- * @param subject
- * The subject node.
- * @param predicate
- * The predicate node.
- * @param object
- * The object node.
- * @throws IllegalArgumentException
- * is any value is null.
- */
- public SecTriple(final SecNode subject, final SecNode predicate,
- final SecNode object) {
- if (subject == null) {
- throw new IllegalArgumentException("Subject may not be null");
- }
- if (predicate == null) {
- throw new IllegalArgumentException("Predicate may not be null");
- }
- if (object == null) {
- throw new IllegalArgumentException("Object may not be null");
- }
- this.subject = subject;
- this.predicate = predicate;
- this.object = object;
- }
-
- @Override
- public int compareTo(final SecTriple o) {
- if (o == null) {
- return 1;
- }
- int retval = subject.compareTo(o.subject);
- if (retval == 0) {
- retval = predicate.compareTo(o.predicate);
- }
- return retval == 0 ? object.compareTo(o.object) : retval;
- }
-
- @Override
- public boolean equals(final Object o) {
- if (o instanceof SecTriple) {
- return this.compareTo((SecTriple) o) == 0;
- }
- return false;
- }
-
- /**
- * @return the object node.
- */
- public SecNode getObject() {
- return object;
- }
-
- /**
- * @return the predicate node.
- */
- public SecNode getPredicate() {
- return predicate;
- }
-
- /**
- * @return the subject node.
- */
- public SecNode getSubject() {
- return subject;
- }
-
- @Override
- public int hashCode() {
- if (hashCode == null) {
- hashCode = new HashCodeBuilder().append(object)
- .append(predicate).append(subject).toHashCode();
- }
- return hashCode;
- }
-
- @Override
- public String toString() {
- return String.format("( %s, %s, %s )", getSubject(),
- getPredicate(), getObject());
- }
-
- @Override
- public Triple asTriple() {
- return new Triple( subject.asNode(), predicate.asNode(), object.asNode() );
- }
- }
-
- /**
* A collection of utility functions for the SecurityEvaluator
* implementations.
*/
@@ -466,6 +151,66 @@ public interface SecurityEvaluator {
}
/**
+ * Indicates a variable in the triple.
+ * <p>
+ * </p>
+ * This differs from <code>ANY</code> in that the system is asking if
+ * there are any prohibitions not if the user may perform. Thus queries
+ * with the VARIABLE type node should return <code>true</code> where
+ * <code>ANY</code> returns <code>false</code>. In general this type is
+ * used in the query to determine if triple level filtering of results
+ * must be performed.
+ * <p>
+ * </p>
+ * <p>
+ * <dl>
+ * <dt><code>(VARIABLE, X, Y )</code></dt>
+ * <dd>
+ * Asks if there are any prohibitions against the user seeing all
+ * subjects that have property X and object Y.</dd>
+ * <dt>
+ * <code>(X, VARIABLE, Y )</code></dt>
+ * <dd>
+ * Asks if there are any prohibitions against the user seeing all
+ * predicates that have subject X and object Y.</dd>
+ * <dt>
+ * <code>(X, Y, VARIABLE)</code></dt>
+ * <dd>
+ * Asks if there are any prohibitions against the user seeing all
+ * objects that have subject X and predicate Y.</dd>
+ * </dl>
+ * The <code>VARIABLE</code> may occur multiple times and may occur with
+ * the <code>ANY</code> node.
+ * </p>
+ *
+ */
+ public static final Node VARIABLE = NodeFactory.createBlankNode( "urn:jena-permissions:VARIABLE");
+
+ /**
+ * This is a blank (anonymous) node that will be created in the future.
+ * <p>
+ * FUTURE is used to check that a blank node may be created in as
+ * specific position in a triple.
+ * </p>
+ * <p>
+ * <dl>
+ * <dt><code>(FUTURE, X, Y )</code></dt>
+ * <dd>
+ * Asks if there the user may create a blank node that has property
+ * X and object Y.</dd>
+ * <dt>
+ * <code>(X, Y, FUTURE)</code></dt>
+ * <dd>
+ * Asks if there the user may create a blank node that has subject
+ * X and property Y.</dd>
+ * </dl>
+ * The <code>FUTURE</code> may occur multiple times and may occur with
+ * the <code>ANY</code> node.
+ * </p>
+ */
+ public static final Node FUTURE = NodeFactory.createBlankNode( "urn:jena-permissions:FUTURE");
+
+ /**
* Determine if the action is allowed on the graph.
*
* @param principal
@@ -478,7 +223,7 @@ public interface SecurityEvaluator {
* @return true if the action is allowed, false otherwise.
*
*/
- public boolean evaluate(Object principal, Action action, SecNode graphIRI);
+ public boolean evaluate(Object principal, Action action, Node graphIRI);
/**
* Determine if the action is allowed on the triple within the graph.
@@ -524,8 +269,8 @@ public interface SecurityEvaluator {
* @throws IllegalArgumentException
* if any argument is null.
*/
- public boolean evaluate(Object principal, Action action, SecNode graphIRI,
- SecTriple triple);
+ public boolean evaluate(Object principal, Action action, Node graphIRI,
+ Triple triple);
/**
* Determine if all actions are allowed on the graph.
@@ -543,12 +288,12 @@ public interface SecurityEvaluator {
* if any argument is null.
*/
public boolean evaluate(Object principal, Set<Action> actions,
- SecNode graphIRI);
+ Node graphIRI);
/**
* Determine if all the actions are allowed on the triple within the graph.
* <p>
- * See evaluate( Action, SecNode, SecTriple ) for discussion of evaluation
+ * See evaluate( Action, Node, Triple ) for discussion of evaluation
* strategy.
* </p>
*
@@ -564,7 +309,7 @@ public interface SecurityEvaluator {
* if any argument is null.
*/
public boolean evaluate(Object principal, Set<Action> actions,
- SecNode graphIRI, SecTriple triple);
+ Node graphIRI, Triple triple);
/**
* Determine if any of the actions are allowed on the graph.
@@ -582,13 +327,13 @@ public interface SecurityEvaluator {
* if any argument is null.
*/
public boolean evaluateAny(Object principal, Set<Action> actions,
- SecNode graphIRI);
+ Node graphIRI);
/**
* Determine if any of the actions are allowed on the triple within the
* graph.
* <p>
- * See evaluate( Action, SecNode, SecTriple ) for discussion of evaluation
+ * See evaluate( Action, Node, Triple ) for discussion of evaluation
* strategy.
* </p>
*
@@ -607,7 +352,7 @@ public interface SecurityEvaluator {
* if any argument is null.
*/
public boolean evaluateAny(Object principal, Set<Action> actions,
- SecNode graphIRI, SecTriple triple);
+ Node graphIRI, Triple triple);
/**
* Determine if the user is allowed to update the "from" triple to the "to"
@@ -630,8 +375,8 @@ public interface SecurityEvaluator {
* @throws IllegalArgumentException
* if any argument is null.
*/
- public boolean evaluateUpdate(Object principal, SecNode graphIRI,
- SecTriple from, SecTriple to);
+ public boolean evaluateUpdate(Object principal, Node graphIRI,
+ Triple from, Triple to);
/**
* returns the current principal or null if there is no current principal.
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredCapabilities.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredCapabilities.java b/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredCapabilities.java
index 1cb3890..67cf047 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredCapabilities.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredCapabilities.java
@@ -18,11 +18,11 @@
package org.apache.jena.permissions.graph;
import org.apache.jena.graph.Capabilities ;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.graph.Triple;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.permissions.SecurityEvaluator.Action;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode;
-import org.apache.jena.permissions.SecurityEvaluator.SecTriple;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode.Type;
/**
* The interface for secured Capabilities instances.
@@ -33,7 +33,7 @@ public class SecuredCapabilities implements Capabilities
// the security evaluator in use
private final SecurityEvaluator securityEvaluator;
// the graphIRI that the capabilities belong to.
- private final SecNode graphIRI;
+ private final Node graphIRI;
// the unsecured capabilities.
private final Capabilities capabilities;
@@ -51,7 +51,7 @@ public class SecuredCapabilities implements Capabilities
final String graphURI, final Capabilities capabilities )
{
this.securityEvaluator = securityEvaluator;
- this.graphIRI = new SecNode(Type.URI, graphURI);
+ this.graphIRI = NodeFactory.createURI(graphURI);
this.capabilities = capabilities;
}
@@ -80,7 +80,7 @@ public class SecuredCapabilities implements Capabilities
{
// special security check
retval = securityEvaluator.evaluate(principal, Action.Create, graphIRI,
- SecTriple.ANY);
+ Triple.ANY);
}
return retval;
}
@@ -116,7 +116,7 @@ public class SecuredCapabilities implements Capabilities
{
// special security check
retval = securityEvaluator.evaluate(principal, Action.Delete, graphIRI,
- SecTriple.ANY);
+ Triple.ANY);
}
return retval;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredGraph.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredGraph.java b/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredGraph.java
index 824dceb..a3ff312 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredGraph.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredGraph.java
@@ -22,8 +22,8 @@ import org.apache.jena.graph.GraphStatisticsHandler ;
import org.apache.jena.graph.Node ;
import org.apache.jena.graph.Triple ;
import org.apache.jena.permissions.ReadDeniedException;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.permissions.SecurityEvaluator;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode;
import org.apache.jena.shared.AddDeniedException ;
import org.apache.jena.shared.DeleteDeniedException ;
import org.apache.jena.util.iterator.ExtendedIterator ;
@@ -33,7 +33,7 @@ import org.apache.jena.util.iterator.ExtendedIterator ;
*
* Use the SecuredGraph.Factory to create instances
*/
-public interface SecuredGraph extends Graph
+public interface SecuredGraph extends Graph, SecuredItem
{
/**
@@ -100,7 +100,11 @@ public interface SecuredGraph extends Graph
@Override
public SecuredGraphEventManager getEventManager();
- public SecNode getModelNode();
+ /**
+ * Return the name of the graph.
+ * @return The name of the graph as a node.
+ */
+ public Node getModelNode();
@Override
public SecuredPrefixMapping getPrefixMapping();
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredGraphEventManager.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredGraphEventManager.java b/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredGraphEventManager.java
index 3b981e4..3b11b80 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredGraphEventManager.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredGraphEventManager.java
@@ -35,7 +35,6 @@ import org.apache.jena.graph.Triple ;
import org.apache.jena.graph.impl.CollectionGraph ;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.permissions.SecurityEvaluator.Action;
-import org.apache.jena.permissions.graph.impl.SecuredGraphImpl;
import org.apache.jena.permissions.impl.CachedSecurityEvaluator;
import org.apache.jena.permissions.impl.SecuredItemImpl;
import org.apache.jena.permissions.utils.PermTripleFilter;
@@ -64,12 +63,12 @@ public class SecuredGraphEventManager implements GraphEventManager {
private Triple[] getArray(final Graph g, final Triple[] triples,
final Set<Action> perms) {
Triple[] retval = triples;
- if (g instanceof SecuredGraphImpl) {
- final SecuredGraphImpl sg = (SecuredGraphImpl) g;
+ if (g instanceof SecuredGraph) {
+ final SecuredGraph sg = (SecuredGraph) g;
final SecurityEvaluator evaluator = new CachedSecurityEvaluator(sg.getSecurityEvaluator(), runAs);
if (evaluator.evaluateAny(runAs, perms, sg.getModelNode())) {
if (!evaluator.evaluateAny(runAs, perms, sg.getModelNode(),
- SecuredItemImpl.convert(Triple.ANY))) {
+ Triple.ANY)) {
final List<Triple> list = wrapPermIterator(sg,
Arrays.asList(triples).iterator(), perms)
.toList();
@@ -106,7 +105,7 @@ public class SecuredGraphEventManager implements GraphEventManager {
sg.getModelNode())) {
if (!evaluator.evaluateAny(runAs,
SecuredGraphEventManager.ADD, sg.getModelNode(),
- SecuredItemImpl.convert(Triple.ANY))) {
+ Triple.ANY)) {
final List<Triple> lst = added.find(Triple.ANY)
.toList();
addGraph = new CollectionGraph(Arrays.asList(getArray(
@@ -131,8 +130,8 @@ public class SecuredGraphEventManager implements GraphEventManager {
@Override
public void notifyAddIterator(final Graph g, final Iterator<Triple> it) {
- if (g instanceof SecuredGraphImpl) {
- final SecuredGraphImpl sg = (SecuredGraphImpl) g;
+ if (g instanceof SecuredGraph) {
+ final SecuredGraph sg = (SecuredGraph) g;
final SecurityEvaluator evaluator = new CachedSecurityEvaluator(sg.getSecurityEvaluator(), runAs);
// only report if we can write to the graph
if (evaluator.evaluateAny(runAs, SecuredGraphEventManager.ADD,
@@ -155,14 +154,14 @@ public class SecuredGraphEventManager implements GraphEventManager {
@Override
public void notifyAddList(final Graph g, final List<Triple> triples) {
List<Triple> list = triples;
- if (g instanceof SecuredGraphImpl) {
- final SecuredGraphImpl sg = (SecuredGraphImpl) g;
+ if (g instanceof SecuredGraph) {
+ final SecuredGraph sg = (SecuredGraph) g;
final SecurityEvaluator evaluator = new CachedSecurityEvaluator(sg.getSecurityEvaluator(), runAs);
if (evaluator.evaluateAny(runAs, SecuredGraphEventManager.ADD,
sg.getModelNode())) {
if (!evaluator.evaluateAny(runAs,
SecuredGraphEventManager.ADD, sg.getModelNode(),
- SecuredItemImpl.convert(Triple.ANY))) {
+ Triple.ANY)) {
list = wrapPermIterator(sg, triples.iterator(),
SecuredGraphEventManager.ADD).toList();
}
@@ -191,8 +190,7 @@ public class SecuredGraphEventManager implements GraphEventManager {
SecuredGraphEventManager.ADD, sg.getModelNode());
if (notify) {
notify = evaluator.evaluateAny(runAs,
- SecuredGraphEventManager.ADD, sg.getModelNode(),
- SecuredItemImpl.convert(t));
+ SecuredGraphEventManager.ADD, sg.getModelNode(), t);
}
}
else {
@@ -206,14 +204,14 @@ public class SecuredGraphEventManager implements GraphEventManager {
@Override
public void notifyDeleteArray(final Graph g, final Triple[] triples) {
Triple[] deleted = triples;
- if (g instanceof SecuredGraphImpl) {
- final SecuredGraphImpl sg = (SecuredGraphImpl) g;
+ if (g instanceof SecuredGraph) {
+ final SecuredGraph sg = (SecuredGraph) g;
final SecurityEvaluator evaluator = new CachedSecurityEvaluator(sg.getSecurityEvaluator(), runAs);
if (evaluator.evaluateAny(runAs,
SecuredGraphEventManager.DELETE, sg.getModelNode())) {
if (!evaluator.evaluateAny(runAs,
SecuredGraphEventManager.DELETE, sg.getModelNode(),
- SecuredItemImpl.convert(Triple.ANY))) {
+ Triple.ANY)) {
final List<Triple> list = wrapPermIterator(sg,
Arrays.asList(triples).iterator(),
SecuredGraphEventManager.DELETE).toList();
@@ -235,15 +233,15 @@ public class SecuredGraphEventManager implements GraphEventManager {
@Override
public void notifyDeleteGraph(final Graph g, final Graph removed) {
- if (g instanceof SecuredGraphImpl) {
- final SecuredGraphImpl sg = (SecuredGraphImpl) g;
+ if (g instanceof SecuredGraph) {
+ final SecuredGraph sg = (SecuredGraph) g;
final SecurityEvaluator evaluator = new CachedSecurityEvaluator(sg.getSecurityEvaluator(), runAs);
if (evaluator.evaluateAny(runAs,
SecuredGraphEventManager.DELETE, sg.getModelNode())) {
Graph g2 = removed;
if (!evaluator.evaluateAny(runAs,
SecuredGraphEventManager.DELETE, sg.getModelNode(),
- SecuredItemImpl.convert(Triple.ANY))) {
+ Triple.ANY)) {
g2 = new CollectionGraph(
removed.find(Triple.ANY)
.filterKeep(
@@ -268,15 +266,15 @@ public class SecuredGraphEventManager implements GraphEventManager {
public void notifyDeleteIterator(final Graph g,
final Iterator<Triple> it) {
Iterator<Triple> iter = it;
- if (g instanceof SecuredGraphImpl) {
- final SecuredGraphImpl sg = (SecuredGraphImpl) g;
+ if (g instanceof SecuredGraph) {
+ final SecuredGraph sg = (SecuredGraph) g;
final SecurityEvaluator evaluator = new CachedSecurityEvaluator(sg.getSecurityEvaluator(), runAs);
if (evaluator.evaluateAny(runAs,
SecuredGraphEventManager.DELETE, sg.getModelNode())) {
if (!evaluator.evaluateAny(runAs,
SecuredGraphEventManager.DELETE, sg.getModelNode(),
- SecuredItemImpl.convert(Triple.ANY))) {
+ Triple.ANY)) {
iter = WrappedIterator.create(it).filterKeep(
new PermTripleFilter(
SecuredGraphEventManager.DELETE, sg,
@@ -298,14 +296,14 @@ public class SecuredGraphEventManager implements GraphEventManager {
@Override
public void notifyDeleteList(final Graph g, final List<Triple> triples) {
List<Triple> list = triples;
- if (g instanceof SecuredGraphImpl) {
- final SecuredGraphImpl sg = (SecuredGraphImpl) g;
+ if (g instanceof SecuredGraph) {
+ final SecuredGraph sg = (SecuredGraph) g;
final SecurityEvaluator evaluator = new CachedSecurityEvaluator(sg.getSecurityEvaluator(), runAs);
if (evaluator.evaluateAny(runAs,
SecuredGraphEventManager.DELETE, sg.getModelNode())) {
if (!evaluator.evaluateAny(runAs,
SecuredGraphEventManager.DELETE, sg.getModelNode(),
- SecuredItemImpl.convert(Triple.ANY))) {
+ Triple.ANY)) {
list = WrappedIterator
.create(triples.iterator())
.filterKeep(
@@ -335,8 +333,7 @@ public class SecuredGraphEventManager implements GraphEventManager {
SecuredGraphEventManager.DELETE, sg.getModelNode());
if (notify) {
notify = evaluator.evaluateAny(runAs,
- SecuredGraphEventManager.DELETE, sg.getModelNode(),
- SecuredItemImpl.convert(t));
+ SecuredGraphEventManager.DELETE, sg.getModelNode(), t);
}
}
else {
@@ -353,11 +350,11 @@ public class SecuredGraphEventManager implements GraphEventManager {
}
private ExtendedIterator<Triple> wrapPermIterator(
- final SecuredGraphImpl sg, final Iterator<Triple> it,
+ final SecuredGraph sg, final Iterator<Triple> it,
final Set<Action> perms) {
final SecurityEvaluator evaluator = new CachedSecurityEvaluator(sg.getSecurityEvaluator(), runAs);
if (!evaluator.evaluateAny(runAs, perms, sg.getModelNode(),
- SecuredItemImpl.convert(Triple.ANY))) {
+ Triple.ANY)) {
// nope so wrap the iterator with security iterator
return WrappedIterator.create(it).filterKeep(
new PermTripleFilter(perms, sg, evaluator));
@@ -372,7 +369,6 @@ public class SecuredGraphEventManager implements GraphEventManager {
private final Graph baseGraph;
private final Map<GraphListener, Stack<SecuredGraphListener>> listenerMap = new HashMap<GraphListener, Stack<SecuredGraphListener>>();
private static Set<Action> DELETE;
-
private static Set<Action> ADD;
static {
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredPrefixMapping.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredPrefixMapping.java b/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredPrefixMapping.java
index 899b80c..283f752 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredPrefixMapping.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/graph/SecuredPrefixMapping.java
@@ -20,8 +20,8 @@ package org.apache.jena.permissions.graph;
import java.util.Map;
import org.apache.jena.permissions.ReadDeniedException;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.permissions.UpdateDeniedException;
-import org.apache.jena.permissions.impl.SecuredItem;
import org.apache.jena.shared.PrefixMapping ;
/**
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/graph/impl/SecuredGraphImpl.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/graph/impl/SecuredGraphImpl.java b/jena-permissions/src/main/java/org/apache/jena/permissions/graph/impl/SecuredGraphImpl.java
index 9f2a881..2268013 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/graph/impl/SecuredGraphImpl.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/graph/impl/SecuredGraphImpl.java
@@ -18,12 +18,12 @@
package org.apache.jena.permissions.graph.impl;
import org.apache.jena.graph.* ;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.permissions.SecurityEvaluator.Action;
import org.apache.jena.permissions.UpdateDeniedException;
import org.apache.jena.permissions.graph.*;
import org.apache.jena.permissions.impl.ItemHolder;
-import org.apache.jena.permissions.impl.SecuredItem;
import org.apache.jena.permissions.impl.SecuredItemImpl;
import org.apache.jena.permissions.utils.PermTripleFilter;
import org.apache.jena.shared.AddDeniedException ;
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/impl/CachedSecurityEvaluator.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/CachedSecurityEvaluator.java b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/CachedSecurityEvaluator.java
index 7c14a3b..b27bde7 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/CachedSecurityEvaluator.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/CachedSecurityEvaluator.java
@@ -19,6 +19,8 @@ package org.apache.jena.permissions.impl;
import java.util.Set;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.Triple;
import org.apache.jena.permissions.SecurityEvaluator;
/**
@@ -41,44 +43,44 @@ public class CachedSecurityEvaluator implements SecurityEvaluator {
@Override
public boolean evaluate(final Object principal, final Action action,
- final SecNode graphIRI) {
+ final Node graphIRI) {
return wrapped.evaluate(principal, action, graphIRI);
}
@Override
public boolean evaluate(final Object principal, final Action action,
- final SecNode graphIRI, final SecTriple triple) {
+ final Node graphIRI, final Triple triple) {
return wrapped.evaluate(principal, action, graphIRI, triple);
}
@Override
public boolean evaluate(final Object principal, final Set<Action> actions,
- final SecNode graphIRI) {
+ final Node graphIRI) {
return wrapped.evaluate(principal, actions, graphIRI);
}
@Override
public boolean evaluate(final Object principal, final Set<Action> actions,
- final SecNode graphIRI, final SecTriple triple) {
+ final Node graphIRI, final Triple triple) {
return wrapped.evaluate(principal, actions, graphIRI, triple);
}
@Override
public boolean evaluateAny(final Object principal,
- final Set<Action> actions, final SecNode graphIRI) {
+ final Set<Action> actions, final Node graphIRI) {
return wrapped.evaluateAny(principal, actions, graphIRI);
}
@Override
public boolean evaluateAny(final Object principal,
- final Set<Action> actions, final SecNode graphIRI,
- final SecTriple triple) {
+ final Set<Action> actions, final Node graphIRI,
+ final Triple triple) {
return wrapped.evaluateAny(principal, actions, graphIRI, triple);
}
@Override
public boolean evaluateUpdate(final Object principal,
- final SecNode graphIRI, final SecTriple from, final SecTriple to) {
+ final Node graphIRI, final Triple from, final Triple to) {
return wrapped.evaluateUpdate(principal, graphIRI, from, to);
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/impl/ItemHolder.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/ItemHolder.java b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/ItemHolder.java
index e5b52d0..d0dab31 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/ItemHolder.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/ItemHolder.java
@@ -22,6 +22,7 @@ import java.util.LinkedHashSet;
import java.util.Set;
import org.apache.commons.lang3.ClassUtils;
+import org.apache.jena.permissions.SecuredItem;
/**
* A class that holds the original item and the secured version of it.
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItem.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItem.java b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItem.java
deleted file mode 100644
index 10f0d7c..0000000
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItem.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jena.permissions.impl;
-
-import org.apache.jena.permissions.SecurityEvaluator;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode;
-import org.apache.jena.permissions.SecurityEvaluator.SecTriple;
-
-/**
- * The secured item interface is mixed into instances of secured objects by the
- * proxy. It provides the security context for the security checks as well as
- * several useful shorthand methods for common checks.
- */
-public interface SecuredItem
-{
-
- /**
- * Utilities for SecuredItem implementations.
- */
- public static class Util
- {
- /**
- * Secured items are equivalent if their security evaluators and
- * modelIRIs are equal.
- *
- * @param si1
- * A secured item to check
- * @param si2
- * A second secured item to check
- * @return true if si1 is equivalent to si2.
- */
- public static boolean isEquivalent( final SecuredItem si1,
- final SecuredItem si2 )
- {
- return si1.getSecurityEvaluator()
- .equals(si2.getSecurityEvaluator())
- && si1.getModelIRI().equals(si2.getModelIRI());
- }
-
- public static String modelPermissionMsg( final SecNode modelURI )
- {
- return String.format("Model permissions violation: %s", modelURI);
- }
-
- public static String triplePermissionMsg( final SecNode modelURI )
- {
- return String.format("Triple permissions violation: %s", modelURI);
- }
- }
-
- /**
- * @return true if the securedModel allows items to to be created.
- */
- public boolean canCreate();
-
- /**
- * Return true if the triple can be created.
- * If any s,p or o is SecNode.ANY then this method must return false if
- * there
- * are
- * any restrictions where the remaining nodes and held constant and the ANY
- * node
- * is allowed to vary.
- *
- * See canRead(SecTriple t)
- *
- * @param t
- * The triple to check
- * @return true if the triple can be created.
- */
- public boolean canCreate( SecTriple t );
-
- /**
- * @return true if the securedModel allows items to to be deleted.
- */
- public boolean canDelete();
-
- /**
- * Return true if the triple can be deleted.
- * If any s,p or o is SecNode.ANY then this method must return false if
- * there
- * are
- * any restrictions where the remaining nodes and held constant and the ANY
- * node
- * is allowed to vary.
- *
- * See canRead(SecTriple t)
- *
- * @param t
- * The triple to check
- * @return true if the triple can be deleted.
- */
- public boolean canDelete( SecTriple t );
-
- /**
- * @return true if the securedModel allows items to to be read.
- */
- public boolean canRead();
-
- /**
- * Return true if the triple can be read.
- * If any s,p or o is SecNode.ANY then this method must return false if
- * there
- * are
- * any restrictions where the remaining nodes and held constant and the ANY
- * node
- * is allowed to vary.
- *
- * (S, P, O) check if S,P,O can be read.
- * (S, P, ANY) check if there are any S,P,x restrictions.
- * (S, ANY, P) check if there are any S,x,P restrictions.
- * (ANY, ANY, ANY) check if there are any restricitons on reading.
- *
- * @param t
- * The triple to check
- * @return true if the triple can be read.
- */
- public boolean canRead( SecTriple t );
-
- /**
- * @return true if the securedModel allows items to to be updated.
- */
- public boolean canUpdate();
-
- /**
- * Return true if the triple can be updated.
- * If any s,p or o is SecNode.ANY then this method must return false if
- * there
- * are
- * any restrictions where the remaining nodes and held constant and the ANY
- * node
- * is allowed to vary.
- *
- * See canRead(SecTriple t)
- *
- * @param from
- * The triple that will be changed
- * @param to
- * The resulting triple.
- * @return true if the from triple can be updated as the to triple.
- */
- public boolean canUpdate( SecTriple from, SecTriple to );
-
- @Override
- public boolean equals( Object o );
-
- /**
- * @return the base item that is being secured.
- */
- public Object getBaseItem();
-
- /**
- * @return The IRI of the securedModel that the item belongs to.
- */
- public String getModelIRI();
-
- /**
- * @return The node represnetation of the securedModel IRI.
- */
- public SecNode getModelNode();
-
- /**
- * The SecurityEvaluator implementation that is being used to determine
- * access.
- *
- * @return The SecurityEvaluator implementation.
- */
- public SecurityEvaluator getSecurityEvaluator();
-
- /**
- * Return true if this secured item is equivalent to another secured item.
- * Generally implemented by calling SecuredItem.Util.isEquivalent
- *
- * @param securedItem
- * the other secured item.
- * @return True if they are equivalent, false otherwise.
- */
- public boolean isEquivalent( SecuredItem securedItem );
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemImpl.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemImpl.java b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemImpl.java
index 1d535c2..209423c 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemImpl.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemImpl.java
@@ -22,16 +22,19 @@ import java.lang.reflect.Proxy;
import org.apache.commons.collections4.map.LRUMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.HashCodeBuilder;
+import org.apache.jena.graph.FrontsTriple;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.graph.Triple;
import org.apache.jena.permissions.ReadDeniedException;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.permissions.SecurityEvaluator;
import org.apache.jena.permissions.SecurityEvaluator.Action;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode;
-import org.apache.jena.permissions.SecurityEvaluator.SecTriple;
-import org.apache.jena.permissions.SecurityEvaluator.SecNode.Type;
import org.apache.jena.permissions.UpdateDeniedException;
-import org.apache.jena.rdf.model.Statement ;
import org.apache.jena.shared.AddDeniedException;
import org.apache.jena.shared.DeleteDeniedException;
+import org.apache.jena.sparql.expr.Expr;
+import org.apache.jena.sparql.util.NodeUtils;
import org.apache.jena.util.iterator.ExtendedIterator ;
import org.apache.jena.vocabulary.RDF ;
@@ -49,62 +52,89 @@ public abstract class SecuredItemImpl implements SecuredItem
private class CacheKey implements Comparable<CacheKey>
{
private final Action action;
- private final SecNode modelNode;
- private final SecTriple from;
- private final SecTriple to;
+ private final Node modelNode;
+ private final Triple from;
+ private final Triple to;
private Integer hashCode;
- public CacheKey( final Action action, final SecNode modelNode )
+ public CacheKey( final Action action, final Node modelNode )
{
this(action, modelNode, null, null);
}
- public CacheKey( final Action action, final SecNode modelNode,
- final SecTriple to )
+ public CacheKey( final Action action, final Node modelNode,
+ final Triple to )
{
this(action, modelNode, to, null);
}
- public CacheKey( final Action action, final SecNode modelNode,
- final SecTriple to, final SecTriple from )
+ public CacheKey( final Action action, final Node modelNode,
+ final Triple to, final Triple from )
{
this.action = action;
this.modelNode = modelNode;
this.to = to;
this.from = from;
}
+
+ private int compare(Node n1, Node n2)
+ {
+ if (Node.ANY.equals( n1 ))
+ {
+ if (Node.ANY.equals(n2))
+ {
+ return Expr.CMP_EQUAL;
+ }
+ return Expr.CMP_LESS;
+ }
+ if (Node.ANY.equals( n2 ))
+ {
+ return Expr.CMP_GREATER;
+ }
+ return NodeUtils.compareRDFTerms( n1, n2 );
+ }
+ private int compare(Triple t1, Triple t2)
+ {
+ if (t1 == null)
+ {
+ if (t2 == null)
+ {
+ return Expr.CMP_EQUAL;
+ }
+ return Expr.CMP_LESS;
+ }
+ if (t2 == null)
+ {
+ return Expr.CMP_GREATER;
+ }
+ int retval = compare(t1.getSubject(), t2.getSubject());
+ if (retval == Expr.CMP_EQUAL)
+ {
+ retval = compare(t1.getPredicate(), t2.getPredicate());
+ }
+ if (retval == Expr.CMP_EQUAL)
+ {
+ retval = compare(t1.getObject(), t2.getObject());
+ }
+ return retval;
+ }
+
@Override
public int compareTo( final CacheKey other )
{
int retval = this.action.compareTo(other.action);
- if (retval == 0)
+ if (retval == Expr.CMP_EQUAL)
{
- retval = this.modelNode.compareTo(other.modelNode);
+ retval = NodeUtils.compareRDFTerms(this.modelNode,other.modelNode);
}
- if (retval == 0)
+ if (retval == Expr.CMP_EQUAL)
{
- if (this.to == null)
- {
- if (other.to == null)
- {
- return 0;
- }
- return -1;
- }
- retval = this.to.compareTo(other.to);
+ retval =compare(this.to, other.to);
}
- if (retval == 0)
+ if (retval == Expr.CMP_EQUAL)
{
- if (this.from == null)
- {
- if (other.from == null)
- {
- return 0;
- }
- return -1;
- }
- retval = this.from.compareTo(other.from);
+ retval = compare(this.from, other.from);
}
return retval;
}
@@ -134,34 +164,23 @@ public abstract class SecuredItemImpl implements SecuredItem
// the maximum size of the cache
public static int MAX_CACHE = 100;
// the cache for this thread.
- public static final ThreadLocal<LRUMap> CACHE = new ThreadLocal<LRUMap>();
+ public static final ThreadLocal<LRUMap<CacheKey,Boolean>> CACHE = new ThreadLocal<LRUMap<CacheKey,Boolean>>();
// the number of times this thread has recursively called the constructor.
public static final ThreadLocal<Integer> COUNT = new ThreadLocal<Integer>();
/**
- * Convert a Jena Node object into a SecNode object.
+ * May Convert a Jena Node object into the SecurityEvaluator.VARIABLE instance.
* @param jenaNode The Jena node to convert.
- * @return The SecNode that represents the jenaNode.
+ * @return The Node that represents the jenaNode.
*/
- public static SecNode convert( final org.apache.jena.graph.Node jenaNode )
+ private static Node convert( final Node jenaNode )
{
- if (org.apache.jena.graph.Node.ANY.equals(jenaNode))
- {
- return SecNode.ANY;
- }
- if (jenaNode.isLiteral())
- {
- return new SecNode(Type.Literal, jenaNode.getLiteral().toString());
- }
- if (jenaNode.isBlank())
- {
- return new SecNode(Type.Anonymous, jenaNode.getBlankNodeLabel());
- }
+
if (jenaNode.isVariable())
{
- return SecNode.VARIABLE;
+ return SecurityEvaluator.VARIABLE;
}
- return new SecNode(Type.URI, jenaNode.getURI());
+ return jenaNode;
}
/**
@@ -169,12 +188,16 @@ public abstract class SecuredItemImpl implements SecuredItem
* @param jenaTriple The Jena Triple to convert.
* @return The SecTriple that represents the jenaTriple.
*/
- public static SecTriple convert(
- final org.apache.jena.graph.Triple jenaTriple )
+ private static Triple convert(
+ final Triple jenaTriple )
{
- return new SecTriple(SecuredItemImpl.convert(jenaTriple.getSubject()),
+ if (jenaTriple.getSubject().isVariable() || jenaTriple.getPredicate().isVariable() || jenaTriple.getObject().isVariable())
+ {
+ return new Triple(SecuredItemImpl.convert(jenaTriple.getSubject()),
SecuredItemImpl.convert(jenaTriple.getPredicate()),
SecuredItemImpl.convert(jenaTriple.getObject()));
+ }
+ return jenaTriple;
}
/**
@@ -210,7 +233,7 @@ public abstract class SecuredItemImpl implements SecuredItem
final Integer i = SecuredItemImpl.COUNT.get();
if (i == null)
{
- SecuredItemImpl.CACHE.set(new LRUMap(Math.max(
+ SecuredItemImpl.CACHE.set(new LRUMap<CacheKey,Boolean>(Math.max(
SecuredItemImpl.MAX_CACHE, 100)));
SecuredItemImpl.COUNT.set( 1 );
}
@@ -224,7 +247,7 @@ public abstract class SecuredItemImpl implements SecuredItem
private final SecurityEvaluator securityEvaluator;
// the secured node for that names the graph.
- private final SecNode modelNode;
+ private final Node modelNode;
// the item holder that we are evaluating.
private final ItemHolder<?, ?> itemHolder;
@@ -253,8 +276,7 @@ public abstract class SecuredItemImpl implements SecuredItem
throw new IllegalArgumentException("ItemHolder may not be null");
}
this.securityEvaluator = securedItem.getSecurityEvaluator();
- this.modelNode = new SecurityEvaluator.SecNode(
- SecurityEvaluator.SecNode.Type.URI, securedItem.getModelIRI());
+ this.modelNode = securedItem.getModelNode();
this.itemHolder = holder;
}
@@ -284,8 +306,7 @@ public abstract class SecuredItemImpl implements SecuredItem
throw new IllegalArgumentException("ItemHolder may not be null");
}
this.securityEvaluator = securityEvaluator;
- this.modelNode = new SecurityEvaluator.SecNode(
- SecurityEvaluator.SecNode.Type.URI, modelURI);
+ this.modelNode = NodeFactory.createURI(modelURI);
this.itemHolder = holder;
}
@@ -305,18 +326,18 @@ public abstract class SecuredItemImpl implements SecuredItem
*/
private Boolean cacheGet( final CacheKey key )
{
- final LRUMap cache = SecuredItemImpl.CACHE.get();
+ final LRUMap<CacheKey,Boolean> cache = SecuredItemImpl.CACHE.get();
return (cache == null) ? null : (Boolean) cache.get(key);
}
/**
- * set teh cache value.
+ * set the cache value.
* @param key The key to set the value for.
* @param value The value to set.
*/
- void cachePut( final CacheKey key, final boolean value )
+ private void cachePut( final CacheKey key, final boolean value )
{
- final LRUMap cache = SecuredItemImpl.CACHE.get();
+ final LRUMap<CacheKey,Boolean> cache = SecuredItemImpl.CACHE.get();
if (cache != null)
{
cache.put(key, value);
@@ -342,14 +363,11 @@ public abstract class SecuredItemImpl implements SecuredItem
return retval;
}
- public boolean canCreate( final org.apache.jena.graph.Triple t )
- {
- return canCreate(SecuredItemImpl.convert(t));
- }
-
+
@Override
- public boolean canCreate( final SecTriple t )
+ public boolean canCreate( final Triple triple )
{
+ Triple t = convert(triple);
final CacheKey key = new CacheKey(Action.Create, modelNode, t);
Boolean retval = cacheGet(key);
if (retval == null)
@@ -360,9 +378,10 @@ public abstract class SecuredItemImpl implements SecuredItem
return retval;
}
- public boolean canCreate( final Statement s )
+ @Override
+ public boolean canCreate( final FrontsTriple frontsTriple )
{
- return canCreate(s.asTriple());
+ return canCreate(frontsTriple.asTriple());
}
/*
@@ -383,14 +402,10 @@ public abstract class SecuredItemImpl implements SecuredItem
return retval;
}
- public boolean canDelete( final org.apache.jena.graph.Triple t )
- {
- return canDelete(SecuredItemImpl.convert(t));
- }
-
@Override
- public boolean canDelete( final SecTriple t )
+ public boolean canDelete( final Triple triple )
{
+ Triple t = convert(triple);
final CacheKey key = new CacheKey(Action.Delete, modelNode, t);
Boolean retval = cacheGet(key);
if (retval == null)
@@ -401,9 +416,10 @@ public abstract class SecuredItemImpl implements SecuredItem
return retval;
}
- public boolean canDelete( final Statement s )
+ @Override
+ public boolean canDelete( final FrontsTriple frontsTriple )
{
- return canDelete(s.asTriple());
+ return canDelete(frontsTriple.asTriple());
}
/*
@@ -424,14 +440,10 @@ public abstract class SecuredItemImpl implements SecuredItem
return retval;
}
- public boolean canRead( final org.apache.jena.graph.Triple t )
- {
- return canRead(SecuredItemImpl.convert(t));
- }
-
@Override
- public boolean canRead( final SecTriple t )
+ public boolean canRead( final Triple triple )
{
+ Triple t = convert(triple);
final CacheKey key = new CacheKey(Action.Read, modelNode, t);
Boolean retval = cacheGet(key);
if (retval == null)
@@ -442,9 +454,10 @@ public abstract class SecuredItemImpl implements SecuredItem
return retval;
}
- public boolean canRead( final Statement s )
+ @Override
+ public boolean canRead( final FrontsTriple frontsTriple )
{
- return canRead(s.asTriple());
+ return canRead(frontsTriple.asTriple());
}
/*
@@ -465,16 +478,11 @@ public abstract class SecuredItemImpl implements SecuredItem
return retval;
}
- public boolean canUpdate( final org.apache.jena.graph.Triple from,
- final org.apache.jena.graph.Triple to )
- {
- return canUpdate(SecuredItemImpl.convert(from),
- SecuredItemImpl.convert(to));
- }
-
@Override
- public boolean canUpdate( final SecTriple from, final SecTriple to )
+ public boolean canUpdate( final Triple f, final Triple t )
{
+ Triple from = convert(f);
+ Triple to = convert(t);
final CacheKey key = new CacheKey(Action.Update, modelNode, from, to);
Boolean retval = cacheGet(key);
if (retval == null)
@@ -485,7 +493,8 @@ public abstract class SecuredItemImpl implements SecuredItem
return retval;
}
- public boolean canUpdate( final Statement from, final Statement to )
+ @Override
+ public boolean canUpdate( final FrontsTriple from, final FrontsTriple to )
{
return canUpdate(from.asTriple(), to.asTriple());
}
@@ -504,22 +513,17 @@ public abstract class SecuredItemImpl implements SecuredItem
}
}
- protected void checkCreate( final org.apache.jena.graph.Triple t ) throws AddDeniedException
- {
- checkCreate(SecuredItemImpl.convert(t));
- }
-
/**
* check that the triple can be created in the securedModel.,
*
* @throws AddDeniedException
* on failure
*/
- protected void checkCreate( final SecTriple t ) throws AddDeniedException
+ protected void checkCreate( final Triple t ) throws AddDeniedException
{
if (!canCreate(t))
{
- throw new AddDeniedException(SecuredItem.Util.triplePermissionMsg(modelNode), t.asTriple() );
+ throw new AddDeniedException(SecuredItem.Util.triplePermissionMsg(modelNode), t );
}
}
@@ -528,34 +532,31 @@ public abstract class SecuredItemImpl implements SecuredItem
* @param s The statement.
* @throws AddDeniedException on failure
*/
- protected void checkCreate( final Statement s ) throws AddDeniedException
+ protected void checkCreate( final FrontsTriple frontsTriple ) throws AddDeniedException
{
- checkCreate(s.asTriple());
+ checkCreate(frontsTriple.asTriple());
}
/**
* Check that a triple can be reified.
* @param uri The URI for the reification subject. May be null.
- * @param t the triple that is to be reified.
+ * @param front the frontstriple that is to be reified.
* @throws AddDeniedException on failure to add triple
* @throws UpdateDenied if the updates of the graph are not allowed.
*/
- protected void checkCreateReified( final String uri, final SecTriple t ) throws AddDeniedException, UpdateDeniedException
+ protected void checkCreateReified( final String uri, final FrontsTriple front ) throws AddDeniedException, UpdateDeniedException
{
checkUpdate();
- final SecNode n = uri == null ? SecNode.FUTURE : new SecNode(Type.URI,
- uri);
- checkCreate(new SecTriple(n, SecuredItemImpl.convert(RDF.subject
- .asNode()), t.getSubject()));
- checkCreate(new SecTriple(n, SecuredItemImpl.convert(RDF.predicate
- .asNode()), t.getPredicate()));
- checkCreate(new SecTriple(n, SecuredItemImpl.convert(RDF.object
- .asNode()), t.getObject()));
+ Triple t = front.asTriple();
+ final Node n = uri == null ? SecurityEvaluator.FUTURE : NodeFactory.createURI(uri);
+ checkCreate(new Triple(n, RDF.subject.asNode(), t.getSubject()));
+ checkCreate(new Triple(n, RDF.predicate.asNode(), t.getPredicate()));
+ checkCreate(new Triple(n, RDF.object.asNode(), t.getObject()));
}
- protected void checkCreateStatement( final ExtendedIterator<Statement> stmts ) throws AddDeniedException
+ protected void checkCreateFrontsTriples( final ExtendedIterator<? extends FrontsTriple> stmts ) throws AddDeniedException
{
- if (!canCreate(SecTriple.ANY))
+ if (!canCreate(Triple.ANY))
{
try
{
@@ -572,9 +573,9 @@ public abstract class SecuredItemImpl implements SecuredItem
}
protected void checkCreateTriples(
- final ExtendedIterator<org.apache.jena.graph.Triple> triples ) throws AddDeniedException
+ final ExtendedIterator<Triple> triples ) throws AddDeniedException
{
- if (!canCreate(SecTriple.ANY))
+ if (!canCreate(Triple.ANY))
{
try
{
@@ -604,34 +605,29 @@ public abstract class SecuredItemImpl implements SecuredItem
}
}
- protected void checkDelete( final org.apache.jena.graph.Triple t )
- {
- checkDelete(SecuredItemImpl.convert(t));
- }
-
/**
* check that the triple can be deleted in the securedModel.,
*
* @throws DeleteDeniedException
* on failure
*/
- protected void checkDelete( final SecTriple t )
+ protected void checkDelete( final Triple t )
{
if (!canDelete(t))
{
- throw new DeleteDeniedException(SecuredItem.Util.triplePermissionMsg(modelNode), t.asTriple());
+ throw new DeleteDeniedException(SecuredItem.Util.triplePermissionMsg(modelNode), t);
}
}
- protected void checkDelete( final Statement s )
+ protected void checkDelete( final FrontsTriple frontsTriple )
{
- checkDelete(s.asTriple());
+ checkDelete(frontsTriple.asTriple());
}
- protected void checkDeleteStatements(
- final ExtendedIterator<Statement> stmts )
+ protected void checkDeleteFrontsTriples(
+ final ExtendedIterator<? extends FrontsTriple> stmts )
{
- if (!canDelete(SecTriple.ANY))
+ if (!canDelete(Triple.ANY))
{
try
{
@@ -648,9 +644,9 @@ public abstract class SecuredItemImpl implements SecuredItem
}
protected void checkDeleteTriples(
- final ExtendedIterator<org.apache.jena.graph.Triple> triples )
+ final ExtendedIterator<Triple> triples )
{
- if (!canDelete(SecTriple.ANY))
+ if (!canDelete(Triple.ANY))
{
try
{
@@ -680,31 +676,26 @@ public abstract class SecuredItemImpl implements SecuredItem
}
}
- protected void checkRead( final org.apache.jena.graph.Triple t ) throws ReadDeniedException
- {
- checkRead(SecuredItemImpl.convert(t));
- }
-
/**
* check that the triple can be read in the securedModel.,
*
* @throws ReadDeniedException
* on failure
*/
- protected void checkRead( final SecTriple t ) throws ReadDeniedException
+ protected void checkRead( final Triple t ) throws ReadDeniedException
{
if (!canRead(t))
{
- throw new ReadDeniedException(SecuredItem.Util.triplePermissionMsg(modelNode), t.asTriple());
+ throw new ReadDeniedException(SecuredItem.Util.triplePermissionMsg(modelNode), t);
}
}
- protected void checkRead( final Statement s ) throws ReadDeniedException
+ protected void checkRead( final FrontsTriple frontsTriple ) throws ReadDeniedException
{
- checkRead(s.asTriple());
+ checkRead(frontsTriple.asTriple());
}
- protected void checkReadStatement( final ExtendedIterator<Statement> stmts ) throws ReadDeniedException
+ protected void checkReadFrontsTriples( final ExtendedIterator<FrontsTriple> stmts ) throws ReadDeniedException
{
try
{
@@ -720,7 +711,7 @@ public abstract class SecuredItemImpl implements SecuredItem
}
protected void checkReadTriples(
- final ExtendedIterator<org.apache.jena.graph.Triple> triples ) throws ReadDeniedException
+ final ExtendedIterator<Triple> triples ) throws ReadDeniedException
{
try
{
@@ -750,18 +741,6 @@ public abstract class SecuredItemImpl implements SecuredItem
}
/**
- * Check that a triple can be changed from one value to another.
- * @param from The original triple
- * @param to The final triple
- * @throws UpdateDeniedException
- */
- protected void checkUpdate( final org.apache.jena.graph.Triple from,
- final org.apache.jena.graph.Triple to ) throws UpdateDeniedException
- {
- checkUpdate(SecuredItemImpl.convert(from), SecuredItemImpl.convert(to));
- }
-
- /**
* check that the triple can be updated in the securedModel.,
*
* @param from the starting triple
@@ -769,7 +748,7 @@ public abstract class SecuredItemImpl implements SecuredItem
* @throws UpdateDeniedException
* on failure
*/
- protected void checkUpdate( final SecTriple from, final SecTriple to ) throws UpdateDeniedException
+ protected void checkUpdate( final Triple from, final Triple to ) throws UpdateDeniedException
{
if (!canUpdate(from, to))
{
@@ -824,14 +803,14 @@ public abstract class SecuredItemImpl implements SecuredItem
@Override
public String getModelIRI()
{
- return modelNode.getValue();
+ return modelNode.getURI();
}
/**
* get the name of the model.
*/
@Override
- public SecNode getModelNode()
+ public Node getModelNode()
{
return modelNode;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemInvoker.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemInvoker.java b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemInvoker.java
index 94416e5..be4055b 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemInvoker.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemInvoker.java
@@ -22,6 +22,8 @@ import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Proxy;
+import org.apache.jena.permissions.SecuredItem;
+
/**
* A generic InvocationHandler that handles the general invocation of the
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFNode.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFNode.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFNode.java
index e320469..543dc58 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFNode.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFNode.java
@@ -19,7 +19,7 @@ package org.apache.jena.permissions.model;
import org.apache.jena.graph.Node ;
import org.apache.jena.permissions.ReadDeniedException;
-import org.apache.jena.permissions.impl.SecuredItem;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.rdf.model.RDFNode ;
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredStatement.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredStatement.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredStatement.java
index ba610be..bb7e858 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredStatement.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredStatement.java
@@ -19,8 +19,8 @@ package org.apache.jena.permissions.model;
import org.apache.jena.permissions.ReadDeniedException;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.permissions.UpdateDeniedException;
-import org.apache.jena.permissions.impl.SecuredItem;
import org.apache.jena.rdf.model.* ;
import org.apache.jena.shared.AddDeniedException;
import org.apache.jena.shared.DeleteDeniedException;
[2/4] jena git commit: initial changes on perm-interface-refactor as
part of fix for JENA-992
Posted by cl...@apache.org.
http://git-wip-us.apache.org/repos/asf/jena/blob/1dd6cfd1/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java
index 52f413a..f64372f 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java
@@ -17,260 +17,196 @@
*/
package org.apache.jena.permissions.model.impl;
-import java.io.* ;
-import java.net.URL ;
-import java.util.* ;
+import java.io.*;
+import java.net.URL;
+import java.util.*;
import java.util.function.Predicate;
-import org.apache.jena.datatypes.RDFDatatype ;
-import org.apache.jena.graph.Node ;
-import org.apache.jena.graph.NodeFactory ;
-import org.apache.jena.graph.Triple ;
-import org.apache.jena.graph.impl.CollectionGraph ;
+import org.apache.jena.datatypes.RDFDatatype;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.graph.Triple;
+import org.apache.jena.graph.impl.CollectionGraph;
+import org.apache.jena.permissions.SecuredItem;
import org.apache.jena.permissions.SecurityEvaluator;
-import org.apache.jena.permissions.SecurityEvaluator.SecTriple;
import org.apache.jena.permissions.graph.SecuredGraph;
import org.apache.jena.permissions.graph.SecuredPrefixMapping;
import org.apache.jena.permissions.impl.ItemHolder;
-import org.apache.jena.permissions.impl.SecuredItem;
import org.apache.jena.permissions.impl.SecuredItemImpl;
import org.apache.jena.permissions.impl.SecuredItemInvoker;
import org.apache.jena.permissions.model.*;
-import org.apache.jena.rdf.model.* ;
-import org.apache.jena.rdf.model.impl.RDFReaderFImpl ;
-import org.apache.jena.shared.* ;
-import org.apache.jena.util.iterator.ExtendedIterator ;
-import org.apache.jena.util.iterator.WrappedIterator ;
-import org.apache.jena.vocabulary.RDF ;
+import org.apache.jena.rdf.model.*;
+import org.apache.jena.rdf.model.impl.RDFReaderFImpl;
+import org.apache.jena.shared.*;
+import org.apache.jena.util.iterator.ExtendedIterator;
+import org.apache.jena.util.iterator.WrappedIterator;
+import org.apache.jena.vocabulary.RDF;
/**
* Implementation of SecuredModel to be used by a SecuredItemInvoker proxy.
*/
-public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel
-{
+public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel {
// a class that implements ModelChangedListener
- private class SecuredModelChangedListener implements ModelChangedListener
- {
+ private class SecuredModelChangedListener implements ModelChangedListener {
private final ModelChangedListener wrapped;
- private SecuredModelChangedListener( final ModelChangedListener wrapped )
- {
+ private SecuredModelChangedListener(final ModelChangedListener wrapped) {
this.wrapped = wrapped;
}
@Override
- public void addedStatement( final Statement s )
- {
- if (canRead(s.asTriple()))
- {
+ public void addedStatement(final Statement s) {
+ if (canRead(s)) {
wrapped.addedStatement(s);
}
}
@Override
- public void addedStatements( final List<Statement> statements )
- {
- if (canRead(Triple.ANY))
- {
+ public void addedStatements(final List<Statement> statements) {
+ if (canRead(Triple.ANY)) {
wrapped.addedStatements(statements);
- }
- else
- {
+ } else {
final SecuredStatementIterator iter = new SecuredStatementIterator(
holder.getSecuredItem(),
WrappedIterator.create(statements.iterator()));
- try
- {
+ try {
wrapped.addedStatements(iter.toList());
- }
- finally
- {
+ } finally {
iter.close();
}
}
}
@Override
- public void addedStatements( final Model m )
- {
- if (canRead(Triple.ANY))
- {
+ public void addedStatements(final Model m) {
+ if (canRead(Triple.ANY)) {
wrapped.addedStatements(m);
- }
- else
- {
+ } else {
wrapped.addedStatements(SecuredModelImpl.getInstance(
holder.getSecuredItem(), m));
}
}
@Override
- public void addedStatements( final Statement[] statements )
- {
- if (canRead(Triple.ANY))
- {
+ public void addedStatements(final Statement[] statements) {
+ if (canRead(Triple.ANY)) {
wrapped.addedStatements(statements);
- }
- else
- {
+ } else {
final SecuredStatementIterator iter = new SecuredStatementIterator(
holder.getSecuredItem(), WrappedIterator.create(Arrays
.asList(statements).iterator()));
- try
- {
+ try {
final List<Statement> stmts = iter.toList();
wrapped.addedStatements(stmts.toArray(new Statement[stmts
.size()]));
- }
- finally
- {
+ } finally {
iter.close();
}
}
}
@Override
- public void addedStatements( final StmtIterator statements )
- {
- if (canRead(Triple.ANY))
- {
+ public void addedStatements(final StmtIterator statements) {
+ if (canRead(Triple.ANY)) {
wrapped.addedStatements(statements);
- }
- else
- {
+ } else {
final SecuredStatementIterator iter = new SecuredStatementIterator(
holder.getSecuredItem(), statements);
- try
- {
+ try {
wrapped.addedStatements(iter);
- }
- finally
- {
+ } finally {
iter.close();
}
}
}
@Override
- public void notifyEvent( final Model m, final Object event )
- {
+ public void notifyEvent(final Model m, final Object event) {
wrapped.notifyEvent(m, event);
}
@Override
- public void removedStatement( final Statement s )
- {
- if (canRead(s.asTriple()))
- {
+ public void removedStatement(final Statement s) {
+ if (canRead(s)) {
wrapped.removedStatement(s);
}
}
@Override
- public void removedStatements( final List<Statement> statements )
- {
+ public void removedStatements(final List<Statement> statements) {
- if (canRead(Triple.ANY))
- {
+ if (canRead(Triple.ANY)) {
wrapped.removedStatements(statements);
- }
- else
- {
+ } else {
final SecuredStatementIterator iter = new SecuredStatementIterator(
holder.getSecuredItem(),
WrappedIterator.create(statements.iterator()));
- try
- {
+ try {
wrapped.removedStatements(iter.toList());
- }
- finally
- {
+ } finally {
iter.close();
}
}
}
@Override
- public void removedStatements( final Model m )
- {
- if (canRead(Triple.ANY))
- {
+ public void removedStatements(final Model m) {
+ if (canRead(Triple.ANY)) {
wrapped.removedStatements(m);
- }
- else
- {
+ } else {
wrapped.removedStatements(SecuredModelImpl.getInstance(
holder.getSecuredItem(), m));
}
}
@Override
- public void removedStatements( final Statement[] statements )
- {
- if (canRead(Triple.ANY))
- {
+ public void removedStatements(final Statement[] statements) {
+ if (canRead(Triple.ANY)) {
wrapped.removedStatements(statements);
- }
- else
- {
+ } else {
final SecuredStatementIterator iter = new SecuredStatementIterator(
holder.getSecuredItem(), WrappedIterator.create(Arrays
.asList(statements).iterator()));
- try
- {
+ try {
final List<Statement> stmts = iter.toList();
wrapped.removedStatements(stmts.toArray(new Statement[stmts
.size()]));
- }
- finally
- {
+ } finally {
iter.close();
}
}
}
@Override
- public void removedStatements( final StmtIterator statements )
- {
- if (canRead(Triple.ANY))
- {
+ public void removedStatements(final StmtIterator statements) {
+ if (canRead(Triple.ANY)) {
wrapped.removedStatements(statements);
- }
- else
- {
+ } else {
final SecuredStatementIterator iter = new SecuredStatementIterator(
holder.getSecuredItem(), statements);
- try
- {
+ try {
wrapped.removedStatements(iter);
- }
- finally
- {
+ } finally {
iter.close();
}
}
}
}
- /*private class ReadFilter extends Filter<Resource> {
- private SecuredItem si;
- private SecuredResource r;
- private Property p;
- ReadFilter( SecuredItem si, SecuredResource r, Property p )
- {
- this.si = si;
- this.r = r;
- this.p = p;
- }
- @Override
- public boolean test(Resource o) {
- Triple t = new Triple( r.asNode(), p.asNode(), o.asNode());
- return si.canRead( SecuredItemImpl.convert( t ) );
- }};
-*/
+ /*
+ * private class ReadFilter extends Filter<Resource> { private SecuredItem
+ * si; private SecuredResource r; private Property p; ReadFilter(
+ * SecuredItem si, SecuredResource r, Property p ) { this.si = si; this.r =
+ * r; this.p = p; }
+ *
+ * @Override public boolean test(Resource o) { Triple t = new Triple(
+ * r.asNode(), p.asNode(), o.asNode()); return si.canRead(
+ * SecuredItemImpl.convert( t ) ); }};
+ */
private static final RDFReaderF readerFactory = new RDFReaderFImpl();
- //private static final RDFWriterF writerFactory = new RDFWriterFImpl();
+
+ // private static final RDFWriterF writerFactory = new RDFWriterFImpl();
/**
* Get an instance of SecuredModel
@@ -281,9 +217,8 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel
* the Model to secure.
* @return The SecuredModel
*/
- public static SecuredModel getInstance( final SecuredItem securedItem,
- final Model model )
- {
+ public static SecuredModel getInstance(final SecuredItem securedItem,
+ final Model model) {
return org.apache.jena.permissions.Factory.getInstance(
securedItem.getSecurityEvaluator(), securedItem.getModelIRI(),
model);
@@ -302,8 +237,7 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel
*/
public static SecuredModel getInstance(
final SecurityEvaluator securityEvaluator, final String modelIRI,
- final Model model )
- {
+ final Model model) {
final ItemHolder<Model, SecuredModel> holder = new ItemHolder<Model, SecuredModel>(
model);
@@ -311,10 +245,8 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel
securityEvaluator, modelIRI, holder);
// if we are going to create a duplicate proxy, just return this
// one.
- if (model instanceof SecuredModel)
- {
- if (checker.isEquivalent((SecuredModel) model))
- {
+ if (model instanceof SecuredModel) {
+ if (checker.isEquivalent((SecuredModel) model)) {
return (SecuredModel) model;
}
}
@@ -341,51 +273,45 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel
* @param holder
* The item holder that will contain this SecuredModel.
*/
- private SecuredModelImpl( final SecurityEvaluator securityEvaluator,
- final String modelURI, final ItemHolder<Model, SecuredModel> holder )
- {
+ private SecuredModelImpl(final SecurityEvaluator securityEvaluator,
+ final String modelURI, final ItemHolder<Model, SecuredModel> holder) {
super(securityEvaluator, modelURI, holder);
- this.graph = org.apache.jena.permissions.Factory.getInstance(securityEvaluator, modelURI, holder
- .getBaseItem().getGraph());
- this.holder = holder;
+ this.graph = org.apache.jena.permissions.Factory.getInstance(
+ securityEvaluator, modelURI, holder.getBaseItem().getGraph());
+ this.holder = holder;
+ }
+
+ private RDFNode asObject(Object o) {
+ return o instanceof RDFNode ? (RDFNode) o : ResourceFactory
+ .createTypedLiteral(o);
}
-
- private RDFNode asObject( Object o )
- {
- return o instanceof RDFNode ? (RDFNode) o : ResourceFactory.createTypedLiteral( o );
- }
@Override
- public SecuredModel abort()
- {
+ public SecuredModel abort() {
holder.getBaseItem().abort();
return holder.getSecuredItem();
}
@Override
- public SecuredModel add( final List<Statement> statements )
- {
+ public SecuredModel add(final List<Statement> statements) {
checkUpdate();
- checkCreateStatement(WrappedIterator.create(statements.iterator()));
+ checkCreateFrontsTriples(WrappedIterator.create(statements.iterator()));
holder.getBaseItem().add(statements);
return holder.getSecuredItem();
}
@Override
- public SecuredModel add( final Model m )
- {
+ public SecuredModel add(final Model m) {
checkUpdate();
- if (!canCreate(Triple.ANY))
- {
- checkCreateStatement(m.listStatements());
+ if (!canCreate(Triple.ANY)) {
+ checkCreateFrontsTriples(m.listStatements());
}
holder.getBaseItem().add(m);
return holder.getSecuredItem();
}
@Override
- public SecuredModel add( final Resource s, final Property p, final RDFNode o )
- {
+ public SecuredModel add(final Resource s, final Property p, final RDFNode o) {
checkUpdate();
checkCreate(new Triple(s.asNode(), p.asNode(), o.asNode()));
holder.getBaseItem().add(s, p, o);
@@ -393,62 +319,54 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel
}
@Override
- public SecuredModel add( final Resource s, final Property p, final String o )
- {
- return add( s, p, o, false );
+ public SecuredModel add(final Resource s, final Property p, final String o) {
+ return add(s, p, o, false);
}
@Override
- public SecuredModel add( final Resource s, final Property p,
- final String o, final boolean wellFormed )
- {
+ public SecuredModel add(final Resource s, final Property p, final String o,
+ final boolean wellFormed) {
checkUpdate();
- checkCreate(new Triple(s.asNode(), p.asNode(), NodeFactory.createLiteral(o,
- "", wellFormed)));
+ checkCreate(new Triple(s.asNode(), p.asNode(),
+ NodeFactory.createLiteral(o, "", wellFormed)));
holder.getBaseItem().add(s, p, o, wellFormed);
return holder.getSecuredItem();
}
@Override
- public SecuredModel add( final Resource s, final Property p,
- final String lex, final RDFDatatype datatype )
- {
+ public SecuredModel add(final Resource s, final Property p,
+ final String lex, final RDFDatatype datatype) {
checkUpdate();
- checkCreate(new Triple(s.asNode(), p.asNode(), NodeFactory.createLiteral(lex,
- datatype)));
+ checkCreate(new Triple(s.asNode(), p.asNode(),
+ NodeFactory.createLiteral(lex, datatype)));
holder.getBaseItem().add(s, p, lex, datatype);
return holder.getSecuredItem();
}
@Override
- public SecuredModel add( final Resource s, final Property p,
- final String o, final String l )
- {
+ public SecuredModel add(final Resource s, final Property p, final String o,
+ final String l) {
checkUpdate();
- checkCreate(new Triple(s.asNode(), p.asNode(), NodeFactory.createLiteral(o, l,
- false)));
+ checkCreate(new Triple(s.asNode(), p.asNode(),
+ NodeFactory.createLiteral(o, l, false)));
holder.getBaseItem().add(s, p, o, l);
return holder.getSecuredItem();
}
@Override
- public SecuredModel add( final Statement s )
- {
+ public SecuredModel add(final Statement s) {
checkUpdate();
- checkCreate(s.asTriple());
+ checkCreate(s);
holder.getBaseItem().add(s);
return holder.getSecuredItem();
}
@Override
- public SecuredModel add( final Statement[] statements )
- {
+ public SecuredModel add(final Statement[] statements) {
checkUpdate();
- if (!canCreate(Triple.ANY))
- {
- for (final Statement s : statements)
- {
- checkCreate(s.asTriple());
+ if (!canCreate(Triple.ANY)) {
+ for (final Statement s : statements) {
+ checkCreate(s);
}
}
holder.getBaseItem().add(statements);
@@ -457,386 +375,314 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel
}
@Override
- public SecuredModel add( final StmtIterator iter )
- {
+ public SecuredModel add(final StmtIterator iter) {
checkUpdate();
- if (!canCreate(Triple.ANY))
- {
+ if (!canCreate(Triple.ANY)) {
final List<Triple> lst = new ArrayList<Triple>();
- try
- {
- while (iter.hasNext())
- {
+ try {
+ while (iter.hasNext()) {
final Statement s = iter.next();
- checkCreate(s.asTriple());
+ checkCreate(s);
lst.add(s.asTriple());
}
final Model m = ModelFactory
.createModelForGraph(new CollectionGraph(lst));
holder.getBaseItem().add(m.listStatements());
- }
- finally
- {
+ } finally {
iter.close();
}
- }
- else
- {
+ } else {
holder.getBaseItem().add(iter);
}
return holder.getSecuredItem();
}
@Override
- public SecuredModel addLiteral( final Resource s, final Property p,
- final boolean o )
- {
+ public SecuredModel addLiteral(final Resource s, final Property p,
+ final boolean o) {
final Literal l = ResourceFactory.createTypedLiteral(o);
- if (l == null)
- {
- throw new IllegalArgumentException( "HOw did we get a null");
+ if (l == null) {
+ throw new IllegalArgumentException("HOw did we get a null");
}
return add(s, p, l);
}
@Override
- public SecuredModel addLiteral( final Resource s, final Property p,
- final char o )
- {
+ public SecuredModel addLiteral(final Resource s, final Property p,
+ final char o) {
final Literal l = ResourceFactory.createTypedLiteral(o);
return add(s, p, l);
}
@Override
- public SecuredModel addLiteral( final Resource s, final Property p,
- final double o )
- {
+ public SecuredModel addLiteral(final Resource s, final Property p,
+ final double o) {
final Literal l = ResourceFactory.createTypedLiteral(o);
return add(s, p, l);
}
@Override
- public SecuredModel addLiteral( final Resource s, final Property p,
- final float o )
- {
+ public SecuredModel addLiteral(final Resource s, final Property p,
+ final float o) {
final Literal l = ResourceFactory.createTypedLiteral(o);
return add(s, p, l);
}
@Override
- public SecuredModel addLiteral( final Resource s, final Property p,
- final int o )
- {
+ public SecuredModel addLiteral(final Resource s, final Property p,
+ final int o) {
final Literal l = ResourceFactory.createTypedLiteral(o);
return add(s, p, l);
}
@Override
- public SecuredModel addLiteral( final Resource s, final Property p,
- final Literal o )
- {
+ public SecuredModel addLiteral(final Resource s, final Property p,
+ final Literal o) {
return add(s, p, o);
}
@Override
- public SecuredModel addLiteral( final Resource s, final Property p,
- final long o )
- {
+ public SecuredModel addLiteral(final Resource s, final Property p,
+ final long o) {
final Literal l = ResourceFactory.createTypedLiteral(o);
return add(s, p, l);
}
@Override
@Deprecated
- public SecuredModel addLiteral( final Resource s, final Property p,
- final Object o )
- {
+ public SecuredModel addLiteral(final Resource s, final Property p,
+ final Object o) {
return add(s, p, asObject(o));
}
@Override
- public SecuredRDFNode asRDFNode( final Node n )
- {
- return SecuredRDFNodeImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .asRDFNode(n));
+ public SecuredRDFNode asRDFNode(final Node n) {
+ return SecuredRDFNodeImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().asRDFNode(n));
}
@Override
- public SecuredStatement asStatement( final Triple t )
- {
+ public SecuredStatement asStatement(final Triple t) {
final ExtendedIterator<Triple> iter = holder.getBaseItem().getGraph()
.find(t);
final boolean exists = iter.hasNext();
iter.close();
- if (exists)
- {
+ if (exists) {
checkRead();
checkRead(t);
- }
- else
- {
+ } else {
checkUpdate();
checkCreate(t);
}
- return SecuredStatementImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .asStatement(t));
+ return SecuredStatementImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().asStatement(t));
}
@Override
- public SecuredModel begin()
- {
+ public SecuredModel begin() {
holder.getBaseItem().begin();
return holder.getSecuredItem();
}
- private void checkCreate( final SecurityEvaluator.SecNode n, final Triple t )
- {
- checkRead(t);
- checkCreate(new SecurityEvaluator.SecTriple(n,
- SecuredItemImpl.convert(RDF.subject.asNode()),
- SecuredItemImpl.convert(t.getSubject())));
- checkCreate(new SecurityEvaluator.SecTriple(n,
- SecuredItemImpl.convert(RDF.predicate.asNode()),
- SecuredItemImpl.convert(t.getPredicate())));
- checkCreate(new SecurityEvaluator.SecTriple(n,
- SecuredItemImpl.convert(RDF.object.asNode()),
- SecuredItemImpl.convert(t.getObject())));
- }
+ // private void checkCreate( final Node n, final Triple t )
+ // {
+ // checkRead(t);
+ // checkCreate(new SecurityEvaluator.SecTriple(n,
+ // SecuredItemImpl.convert(RDF.subject.asNode()),
+ // SecuredItemImpl.convert(t.getSubject())));
+ // checkCreate(new SecurityEvaluator.SecTriple(n,
+ // SecuredItemImpl.convert(RDF.predicate.asNode()),
+ // SecuredItemImpl.convert(t.getPredicate())));
+ // checkCreate(new SecurityEvaluator.SecTriple(n,
+ // SecuredItemImpl.convert(RDF.object.asNode()),
+ // SecuredItemImpl.convert(t.getObject())));
+ // }
/*
* private void checkCreateAnonymousResource( final
- * SecurityEvaluator.SecNode n )
- * {
- * checkUpdate();
- * final SecurityEvaluator.SecTriple t = new SecurityEvaluator.SecTriple(n,
+ * SecurityEvaluator.SecNode n ) { checkUpdate(); final
+ * SecurityEvaluator.SecTriple t = new SecurityEvaluator.SecTriple(n,
* SecurityEvaluator.SecNode.IGNORE, SecurityEvaluator.SecNode.IGNORE);
- * checkCreate(t);
- * }
+ * checkCreate(t); }
*/
@Override
- public void close()
- {
+ public void close() {
holder.getBaseItem().close();
}
@Override
- public SecuredModel commit()
- {
+ public SecuredModel commit() {
holder.getBaseItem().commit();
return holder.getSecuredItem();
}
@Override
- public boolean contains( final Resource s, final Property p )
- {
+ public boolean contains(final Resource s, final Property p) {
checkRead();
final SecuredStatementIterator iter = new SecuredStatementIterator(
- holder.getSecuredItem(), holder.getBaseItem().listStatements(s, p, (RDFNode) null));
- try
- {
+ holder.getSecuredItem(), holder.getBaseItem().listStatements(s,
+ p, (RDFNode) null));
+ try {
return iter.hasNext();
- }
- finally
- {
+ } finally {
iter.close();
}
}
@Override
- public boolean contains( final Resource s, final Property p, final RDFNode o )
- {
+ public boolean contains(final Resource s, final Property p, final RDFNode o) {
checkRead();
final SecuredStatementIterator iter = new SecuredStatementIterator(
- holder.getSecuredItem(), holder.getBaseItem().listStatements(s, p, o));
- try
- {
+ holder.getSecuredItem(), holder.getBaseItem().listStatements(s,
+ p, o));
+ try {
return iter.hasNext();
- }
- finally
- {
+ } finally {
iter.close();
}
}
@Override
- public boolean contains( final Resource s, final Property p, final String o )
- {
+ public boolean contains(final Resource s, final Property p, final String o) {
checkRead();
final SecuredStatementIterator iter = new SecuredStatementIterator(
- holder.getSecuredItem(), holder.getBaseItem().listStatements(s, p, o));
- try
- {
+ holder.getSecuredItem(), holder.getBaseItem().listStatements(s,
+ p, o));
+ try {
return iter.hasNext();
- }
- finally
- {
+ } finally {
iter.close();
}
}
@Override
- public boolean contains( final Resource s, final Property p,
- final String o, final String l )
- {
+ public boolean contains(final Resource s, final Property p, final String o,
+ final String l) {
checkRead();
final SecuredStatementIterator iter = new SecuredStatementIterator(
- holder.getSecuredItem(), holder.getBaseItem().listStatements(s, p, o, l));
- try
- {
+ holder.getSecuredItem(), holder.getBaseItem().listStatements(s,
+ p, o, l));
+ try {
return iter.hasNext();
- }
- finally
- {
+ } finally {
iter.close();
}
}
@Override
- public boolean contains( final Statement s )
- {
+ public boolean contains(final Statement s) {
checkRead();
checkRead(s);
return holder.getBaseItem().contains(s);
}
@Override
- public boolean containsAll( final Model model )
- {
+ public boolean containsAll(final Model model) {
return containsAll(model.listStatements());
}
@Override
- public boolean containsAll( final StmtIterator iter )
- {
+ public boolean containsAll(final StmtIterator iter) {
checkRead();
final boolean doCheck = canRead(Triple.ANY);
- try
- {
- while (iter.hasNext())
- {
+ try {
+ while (iter.hasNext()) {
final Statement stmt = iter.next();
- if (doCheck)
- {
+ if (doCheck) {
checkRead(stmt);
}
- if (!holder.getBaseItem().contains(stmt))
- {
+ if (!holder.getBaseItem().contains(stmt)) {
return false;
}
}
return true;
- }
- finally
- {
+ } finally {
iter.close();
}
}
@Override
- public boolean containsAny( final Model model )
- {
+ public boolean containsAny(final Model model) {
return containsAny(model.listStatements());
}
@Override
- public boolean containsAny( final StmtIterator iter )
- {
+ public boolean containsAny(final StmtIterator iter) {
checkRead();
final boolean skipCheck = canRead(Triple.ANY);
- try
- {
- while (iter.hasNext())
- {
+ try {
+ while (iter.hasNext()) {
final Statement stmt = iter.next();
- if (skipCheck || canRead(stmt))
- {
- if (holder.getBaseItem().contains(stmt))
- {
+ if (skipCheck || canRead(stmt)) {
+ if (holder.getBaseItem().contains(stmt)) {
return true;
}
}
}
return false;
- }
- finally
- {
+ } finally {
iter.close();
}
}
@Override
- public boolean containsLiteral( final Resource s, final Property p,
- final boolean o )
- {
+ public boolean containsLiteral(final Resource s, final Property p,
+ final boolean o) {
return contains(s, p, ResourceFactory.createTypedLiteral(o));
}
@Override
- public boolean containsLiteral( final Resource s, final Property p,
- final char o )
- {
+ public boolean containsLiteral(final Resource s, final Property p,
+ final char o) {
return contains(s, p, ResourceFactory.createTypedLiteral(o));
}
@Override
- public boolean containsLiteral( final Resource s, final Property p,
- final double o )
- {
+ public boolean containsLiteral(final Resource s, final Property p,
+ final double o) {
return contains(s, p, ResourceFactory.createTypedLiteral(o));
}
@Override
- public boolean containsLiteral( final Resource s, final Property p,
- final float o )
- {
+ public boolean containsLiteral(final Resource s, final Property p,
+ final float o) {
return contains(s, p, ResourceFactory.createTypedLiteral(o));
}
@Override
- public boolean containsLiteral( final Resource s, final Property p,
- final int o )
- {
+ public boolean containsLiteral(final Resource s, final Property p,
+ final int o) {
return contains(s, p, ResourceFactory.createTypedLiteral(o));
}
@Override
- public boolean containsLiteral( final Resource s, final Property p,
- final long o )
- {
+ public boolean containsLiteral(final Resource s, final Property p,
+ final long o) {
return contains(s, p, ResourceFactory.createTypedLiteral(o));
}
@Override
- public boolean containsLiteral( final Resource s, final Property p,
- final Object o )
- {
+ public boolean containsLiteral(final Resource s, final Property p,
+ final Object o) {
return contains(s, p, asObject(o));
}
@Override
- public boolean containsResource( final RDFNode r )
- {
+ public boolean containsResource(final RDFNode r) {
checkRead();
- if (canRead(new Triple(Node.ANY, Node.ANY, Node.ANY)))
- {
+ if (canRead(new Triple(Node.ANY, Node.ANY, Node.ANY))) {
return holder.getBaseItem().containsResource(r);
- }
- else
- {
+ } else {
ExtendedIterator<Statement> iter = listStatements(null, null, r);
- if (r.isResource())
- {
+ if (r.isResource()) {
- if (r.isURIResource())
- {
+ if (r.isURIResource()) {
iter = iter
.andThen(listStatements(null, ResourceFactory
.createProperty(r.asNode().getURI()),
(RDFNode) null));
- }
- else
- {
+ } else {
iter = iter.andThen(listStatements(null, ResourceFactory
.createProperty(r.asNode().getBlankNodeLabel()),
(RDFNode) null));
@@ -844,695 +690,567 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel
iter = iter.andThen(listStatements(r.asResource(), null,
(RDFNode) null));
}
- try
- {
+ try {
return iter.hasNext();
- }
- finally
- {
+ } finally {
iter.close();
}
}
}
@Override
- public SecuredAlt createAlt()
- {
+ public SecuredAlt createAlt() {
checkUpdate();
- checkCreate(new SecurityEvaluator.SecTriple(
- SecurityEvaluator.SecNode.FUTURE,
- SecuredItemImpl.convert(RDF.type.asNode()),
- SecuredItemImpl.convert(RDF.Alt.asNode())));
- return SecuredAltImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createAlt());
+ checkCreate(new Triple(SecurityEvaluator.FUTURE, RDF.type.asNode(),
+ RDF.Alt.asNode()));
+ return SecuredAltImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createAlt());
}
@Override
- public SecuredAlt createAlt( final String uri )
- {
+ public SecuredAlt createAlt(final String uri) {
checkUpdate();
checkCreate(new Triple(NodeFactory.createURI(uri), RDF.type.asNode(),
RDF.Alt.asNode()));
- return SecuredAltImpl.getInstance(holder.getSecuredItem(),
- holder.getBaseItem().createAlt(uri));
+ return SecuredAltImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createAlt(uri));
}
@Override
- public SecuredBag createBag()
- {
+ public SecuredBag createBag() {
checkUpdate();
- checkCreate(new SecurityEvaluator.SecTriple(
- SecurityEvaluator.SecNode.FUTURE,
- SecuredItemImpl.convert(RDF.type.asNode()),
- SecuredItemImpl.convert(RDF.Bag.asNode())));
- return SecuredBagImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createBag());
+ checkCreate(new Triple(SecurityEvaluator.FUTURE,
+ RDF.type.asNode(),
+ RDF.Bag.asNode()));
+ return SecuredBagImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createBag());
}
@Override
- public SecuredBag createBag( final String uri )
- {
+ public SecuredBag createBag(final String uri) {
checkUpdate();
checkCreate(new Triple(NodeFactory.createURI(uri), RDF.type.asNode(),
RDF.Bag.asNode()));
- return SecuredBagImpl.getInstance(holder.getSecuredItem(),
- holder.getBaseItem().createBag(uri));
+ return SecuredBagImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createBag(uri));
}
- private Model createCopy()
- {
+ private Model createCopy() {
return ModelFactory.createDefaultModel().add(holder.getSecuredItem());
}
@Override
- public SecuredRDFList createList()
- {
+ public SecuredRDFList createList() {
checkUpdate();
- return SecuredRDFListImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createList());
+ return SecuredRDFListImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createList());
}
@Override
- public SecuredRDFList createList( final Iterator<? extends RDFNode> members )
- {
+ public SecuredRDFList createList(final Iterator<? extends RDFNode> members) {
checkUpdate();
- checkCreate(new SecurityEvaluator.SecTriple(
- SecurityEvaluator.SecNode.FUTURE,
- SecuredItemImpl.convert(RDF.rest.asNode()),
- SecurityEvaluator.SecNode.FUTURE));
- if (!(canCreate(new SecurityEvaluator.SecTriple(
- SecurityEvaluator.SecNode.FUTURE,
- SecuredItemImpl.convert(RDF.first.asNode()),
- SecuredItemImpl.convert(Node.ANY)))))
- {
+ checkCreate(new Triple(SecurityEvaluator.FUTURE, RDF.rest.asNode(),
+ SecurityEvaluator.FUTURE));
+
+ boolean canCreateAny = canCreate(new Triple(SecurityEvaluator.FUTURE,
+ RDF.first.asNode(), Node.ANY));
+ if (!canCreateAny) {
+ // have to check each of the possible entries in the list for
+ // creation.
final List<RDFNode> nodes = new ArrayList<RDFNode>();
- while (members.hasNext())
- {
+ while (members.hasNext()) {
final RDFNode n = members.next();
- checkCreate(new SecurityEvaluator.SecTriple(
- SecurityEvaluator.SecNode.FUTURE,
- SecuredItemImpl.convert(RDF.first.asNode()),
- SecuredItemImpl.convert(n.asNode())));
+ checkCreate(new Triple(SecurityEvaluator.FUTURE,
+ RDF.first.asNode(), n.asNode()));
nodes.add(n);
}
- return SecuredRDFListImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createList(nodes.iterator()));
+ return SecuredRDFListImpl.getInstance(holder.getSecuredItem(),
+ holder.getBaseItem().createList(nodes.iterator()));
- }
- else
- {
- return SecuredRDFListImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createList(members));
+ } else {
+ return SecuredRDFListImpl.getInstance(holder.getSecuredItem(),
+ holder.getBaseItem().createList(members));
}
}
@Override
- public SecuredRDFList createList( final RDFNode[] members )
- {
+ public SecuredRDFList createList(final RDFNode[] members) {
return createList(Arrays.asList(members).iterator());
}
@Override
- public SecuredLiteral createLiteral( final String v )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createLiteral(v));
+ public SecuredLiteral createLiteral(final String v) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createLiteral(v));
}
@Override
- public SecuredLiteral createLiteral( final String v,
- final boolean wellFormed )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createLiteral(v, wellFormed));
+ public SecuredLiteral createLiteral(final String v, final boolean wellFormed) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createLiteral(v, wellFormed));
}
@Override
- public SecuredLiteral createLiteral( final String v, final String language )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createLiteral(v, language));
+ public SecuredLiteral createLiteral(final String v, final String language) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createLiteral(v, language));
}
@Override
- public SecuredStatement createLiteralStatement( final Resource s,
- final Property p, final boolean o )
- {
- return createStatement(s, p,
- ResourceFactory.createTypedLiteral(o));
+ public SecuredStatement createLiteralStatement(final Resource s,
+ final Property p, final boolean o) {
+ return createStatement(s, p, ResourceFactory.createTypedLiteral(o));
}
@Override
- public SecuredStatement createLiteralStatement( final Resource s,
- final Property p, final char o )
- {
- return createStatement(s, p,
- ResourceFactory.createTypedLiteral(o));
+ public SecuredStatement createLiteralStatement(final Resource s,
+ final Property p, final char o) {
+ return createStatement(s, p, ResourceFactory.createTypedLiteral(o));
}
@Override
- public SecuredStatement createLiteralStatement( final Resource s,
- final Property p, final double o )
- {
- return createStatement(s, p,
- ResourceFactory.createTypedLiteral(o));
+ public SecuredStatement createLiteralStatement(final Resource s,
+ final Property p, final double o) {
+ return createStatement(s, p, ResourceFactory.createTypedLiteral(o));
}
@Override
- public SecuredStatement createLiteralStatement( final Resource s,
- final Property p, final float o )
- {
- return createStatement(s, p,
- ResourceFactory.createTypedLiteral(o));
+ public SecuredStatement createLiteralStatement(final Resource s,
+ final Property p, final float o) {
+ return createStatement(s, p, ResourceFactory.createTypedLiteral(o));
}
@Override
- public SecuredStatement createLiteralStatement( final Resource s,
- final Property p, final int o )
- {
- return createStatement(s, p,
- ResourceFactory.createTypedLiteral(o));
+ public SecuredStatement createLiteralStatement(final Resource s,
+ final Property p, final int o) {
+ return createStatement(s, p, ResourceFactory.createTypedLiteral(o));
}
@Override
- public SecuredStatement createLiteralStatement( final Resource s,
- final Property p, final long o )
- {
- return createStatement(s, p,
- ResourceFactory.createTypedLiteral(o));
+ public SecuredStatement createLiteralStatement(final Resource s,
+ final Property p, final long o) {
+ return createStatement(s, p, ResourceFactory.createTypedLiteral(o));
}
@Override
- public SecuredStatement createLiteralStatement( final Resource s,
- final Property p, final Object o )
- {
+ public SecuredStatement createLiteralStatement(final Resource s,
+ final Property p, final Object o) {
return createStatement(s, p, asObject(o));
}
@Override
- public SecuredProperty createProperty( final String uri )
- {
- return SecuredPropertyImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createProperty(uri));
+ public SecuredProperty createProperty(final String uri) {
+ return SecuredPropertyImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createProperty(uri));
}
@Override
- public SecuredProperty createProperty( final String nameSpace,
- final String localName )
- {
+ public SecuredProperty createProperty(final String nameSpace,
+ final String localName) {
checkUpdate();
- return SecuredPropertyImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createProperty(nameSpace, localName));
+ return SecuredPropertyImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createProperty(nameSpace, localName));
}
@Override
- public ReifiedStatement createReifiedStatement( final Statement s )
- {
+ public ReifiedStatement createReifiedStatement(final Statement s) {
checkUpdate();
- checkCreate(SecurityEvaluator.SecNode.FUTURE, s.asTriple());
- return SecuredReifiedStatementImpl.getInstance(holder.getSecuredItem(), holder
- .getBaseItem().createReifiedStatement(s));
+ checkCreateReified(null, s);
+ return SecuredReifiedStatementImpl.getInstance(holder.getSecuredItem(),
+ holder.getBaseItem().createReifiedStatement(s));
}
@Override
- public ReifiedStatement createReifiedStatement( final String uri,
- final Statement s )
- {
+ public ReifiedStatement createReifiedStatement(final String uri,
+ final Statement s) {
checkUpdate();
- checkCreate(new SecurityEvaluator.SecNode(
- SecurityEvaluator.SecNode.Type.URI, uri), s.asTriple());
- return SecuredReifiedStatementImpl.getInstance(holder.getSecuredItem(), holder
- .getBaseItem().createReifiedStatement(uri, s));
+ checkCreateReified(uri, s);
+ return SecuredReifiedStatementImpl.getInstance(holder.getSecuredItem(),
+ holder.getBaseItem().createReifiedStatement(uri, s));
}
@Override
- public SecuredResource createResource()
- {
- // checkCreateAnonymousResource(SecurityEvaluator.SecNode.FUTURE);
- return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createResource());
+ public SecuredResource createResource() {
+ // checkCreateAnonymousResource(SecurityEvaluator.FUTURE);
+ return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createResource());
}
@Override
- public SecuredResource createResource( final AnonId id )
- {
+ public SecuredResource createResource(final AnonId id) {
// checkCreateAnonymousResource(new SecurityEvaluator.SecNode(
// SecurityEvaluator.SecNode.Type.Anonymous, id.getLabelString()));
- return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createResource(id));
+ return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createResource(id));
}
@Override
- public SecuredResource createResource( final Resource type )
- {
+ public SecuredResource createResource(final Resource type) {
checkUpdate();
- final SecurityEvaluator.SecTriple t = new SecurityEvaluator.SecTriple(
- SecurityEvaluator.SecNode.FUTURE,
- SecuredItemImpl.convert(RDF.type.asNode()),
- SecuredItemImpl.convert(type.asNode()));
+ final Triple t = new Triple(SecurityEvaluator.FUTURE,
+ RDF.type.asNode(), type.asNode());
checkCreate(t);
- return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createResource(type));
+ return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createResource(type));
}
@Override
@Deprecated
- public SecuredResource createResource( final ResourceF f )
- {
+ public SecuredResource createResource(final ResourceF f) {
return createResource(null, f);
}
@Override
- public SecuredResource createResource( final String uri )
- {
- return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createResource(uri));
+ public SecuredResource createResource(final String uri) {
+ return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createResource(uri));
}
@Override
- public SecuredResource createResource( final String uri, final Resource type )
- {
+ public SecuredResource createResource(final String uri, final Resource type) {
final Resource r = ResourceFactory.createResource(uri);
- final SecurityEvaluator.SecTriple t = new SecurityEvaluator.SecTriple(
- SecuredItemImpl.convert(r.asNode()),
- SecuredItemImpl.convert(RDF.type.asNode()),
- SecuredItemImpl.convert(type.asNode()));
- if (holder.getBaseItem().contains(r, RDF.type, type))
- {
+ final Triple t = new Triple(r.asNode(), RDF.type.asNode(),
+ type.asNode());
+ if (holder.getBaseItem().contains(r, RDF.type, type)) {
checkRead();
checkRead(t);
- }
- else
- {
+ } else {
checkUpdate();
checkCreate(t);
}
- return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createResource(uri, type));
+ return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createResource(uri, type));
}
@Override
@Deprecated
- public SecuredResource createResource( final String uri, final ResourceF f )
- {
- // Resource resource = f.createResource( ResourceFactory.createResource( uri )
- // );
- // checkCreateResource( resource );
- return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createResource(uri, f));
+ public SecuredResource createResource(final String uri, final ResourceF f) {
+ return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createResource(uri, f));
}
@Override
- public SecuredSeq createSeq()
- {
+ public SecuredSeq createSeq() {
checkUpdate();
- checkCreate(new SecurityEvaluator.SecTriple(
- SecurityEvaluator.SecNode.FUTURE,
- SecuredItemImpl.convert(RDF.type.asNode()),
- SecuredItemImpl.convert(RDF.Alt.asNode())));
- return SecuredSeqImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createSeq());
+ checkCreate(new Triple(SecurityEvaluator.FUTURE,
+ RDF.type.asNode(),
+ RDF.Alt.asNode()));
+ return SecuredSeqImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createSeq());
}
@Override
- public SecuredSeq createSeq( final String uri )
- {
+ public SecuredSeq createSeq(final String uri) {
checkUpdate();
checkCreate(new Triple(NodeFactory.createURI(uri), RDF.type.asNode(),
RDF.Alt.asNode()));
- return SecuredSeqImpl.getInstance(holder.getSecuredItem(),
- holder.getBaseItem().createSeq(uri));
+ return SecuredSeqImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createSeq(uri));
}
@Override
- public SecuredStatement createStatement( final Resource s,
- final Property p, final RDFNode o )
- {
+ public SecuredStatement createStatement(final Resource s, final Property p,
+ final RDFNode o) {
checkUpdate();
checkCreate(new Triple(s.asNode(), p.asNode(), o.asNode()));
- return SecuredStatementImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createStatement(s, p, o));
+ return SecuredStatementImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createStatement(s, p, o));
}
@Override
- public SecuredStatement createStatement( final Resource s,
- final Property p, final String o )
- {
+ public SecuredStatement createStatement(final Resource s, final Property p,
+ final String o) {
checkUpdate();
checkCreate(new Triple(s.asNode(), p.asNode(), NodeFactory.createURI(o)));
- return SecuredStatementImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createStatement(s, p, o));
+ return SecuredStatementImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createStatement(s, p, o));
}
@Override
- public SecuredStatement createStatement( final Resource s,
- final Property p, final String o, final boolean wellFormed )
- {
+ public SecuredStatement createStatement(final Resource s, final Property p,
+ final String o, final boolean wellFormed) {
return createStatement(s, p, o, "", wellFormed);
}
@Override
- public SecuredStatement createStatement( final Resource s,
- final Property p, final String o, final String l )
- {
+ public SecuredStatement createStatement(final Resource s, final Property p,
+ final String o, final String l) {
return createStatement(s, p, o, l, false);
}
@Override
- public SecuredStatement createStatement( final Resource s,
- final Property p, final String o, final String l,
- final boolean wellFormed )
- {
+ public SecuredStatement createStatement(final Resource s, final Property p,
+ final String o, final String l, final boolean wellFormed) {
checkUpdate();
- checkCreate(new Triple(s.asNode(), p.asNode(), NodeFactory.createLiteral(o, l,
- wellFormed)));
- return SecuredStatementImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createStatement(s, p, o, l, wellFormed));
+ checkCreate(new Triple(s.asNode(), p.asNode(),
+ NodeFactory.createLiteral(o, l, wellFormed)));
+ return SecuredStatementImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createStatement(s, p, o, l, wellFormed));
}
@Override
- public SecuredLiteral createTypedLiteral( final boolean v )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(v));
+ public SecuredLiteral createTypedLiteral(final boolean v) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(v));
}
@Override
- public SecuredLiteral createTypedLiteral( final Calendar d )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(d));
+ public SecuredLiteral createTypedLiteral(final Calendar d) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(d));
}
@Override
- public SecuredLiteral createTypedLiteral( final char v )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(v));
+ public SecuredLiteral createTypedLiteral(final char v) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(v));
}
@Override
- public SecuredLiteral createTypedLiteral( final double v )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(v));
+ public SecuredLiteral createTypedLiteral(final double v) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(v));
}
@Override
- public SecuredLiteral createTypedLiteral( final float v )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(v));
+ public SecuredLiteral createTypedLiteral(final float v) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(v));
}
@Override
- public SecuredLiteral createTypedLiteral( final int v )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(v));
+ public SecuredLiteral createTypedLiteral(final int v) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(v));
}
@Override
- public SecuredLiteral createTypedLiteral( final long v )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(v));
+ public SecuredLiteral createTypedLiteral(final long v) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(v));
}
@Override
- public SecuredLiteral createTypedLiteral( final Object value )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(value));
+ public SecuredLiteral createTypedLiteral(final Object value) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(value));
}
@Override
- public SecuredLiteral createTypedLiteral( final Object value,
- final RDFDatatype dtype )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(value, dtype));
+ public SecuredLiteral createTypedLiteral(final Object value,
+ final RDFDatatype dtype) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(value, dtype));
}
@Override
- public SecuredLiteral createTypedLiteral( final Object value,
- final String typeURI )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(value, typeURI));
+ public SecuredLiteral createTypedLiteral(final Object value,
+ final String typeURI) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(value, typeURI));
}
@Override
- public SecuredLiteral createTypedLiteral( final String v )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(v));
+ public SecuredLiteral createTypedLiteral(final String v) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(v));
}
@Override
- public SecuredLiteral createTypedLiteral( final String lex,
- final RDFDatatype dtype )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(lex, dtype));
+ public SecuredLiteral createTypedLiteral(final String lex,
+ final RDFDatatype dtype) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(lex, dtype));
}
@Override
- public SecuredLiteral createTypedLiteral( final String lex,
- final String typeURI )
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .createTypedLiteral(lex, typeURI));
+ public SecuredLiteral createTypedLiteral(final String lex,
+ final String typeURI) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().createTypedLiteral(lex, typeURI));
}
@Override
- public Model difference( final Model model )
- {
+ public Model difference(final Model model) {
checkRead();
- if (canRead(Triple.ANY))
- {
+ if (canRead(Triple.ANY)) {
return holder.getBaseItem().difference(model);
- }
- else
- {
+ } else {
return createCopy().difference(model);
}
}
@Override
- public void enterCriticalSection( final boolean readLockRequested )
- {
- if (readLockRequested)
- {
+ public void enterCriticalSection(final boolean readLockRequested) {
+ if (readLockRequested) {
checkRead();
- }
- else
- {
+ } else {
checkUpdate();
}
holder.getBaseItem().enterCriticalSection(readLockRequested);
}
@Override
- public Object executeInTransaction( final Command cmd )
- {
+ public Object executeInTransaction(final Command cmd) {
return holder.getBaseItem().executeInTransaction(cmd);
}
@Override
- public String expandPrefix( final String prefixed )
- {
+ public String expandPrefix(final String prefixed) {
checkRead();
return holder.getBaseItem().expandPrefix(prefixed);
}
@Override
- public SecuredAlt getAlt( final Resource r )
- {
+ public SecuredAlt getAlt(final Resource r) {
checkRead();
checkRead(new Triple(r.asNode(), RDF.type.asNode(), RDF.Alt.asNode()));
- return SecuredAltImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem().getAlt(r));
+ return SecuredAltImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().getAlt(r));
}
@Override
- public SecuredAlt getAlt( final String uri )
- {
+ public SecuredAlt getAlt(final String uri) {
checkRead();
checkRead(new Triple(NodeFactory.createURI(uri), RDF.type.asNode(),
RDF.Alt.asNode()));
- return SecuredAltImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .getAlt(uri));
+ return SecuredAltImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().getAlt(uri));
}
@Override
- public SecuredResource getAnyReifiedStatement( final Statement s )
- {
+ public SecuredResource getAnyReifiedStatement(final Statement s) {
final RSIterator it = listReifiedStatements(s);
- if (it.hasNext())
- {
- try
- {
- return SecuredReifiedStatementImpl.getInstance(holder.getSecuredItem(),
- it.nextRS());
- }
- finally
- {
+ if (it.hasNext()) {
+ try {
+ return SecuredReifiedStatementImpl.getInstance(
+ holder.getSecuredItem(), it.nextRS());
+ } finally {
it.close();
}
- }
- else
- {
- return SecuredReifiedStatementImpl.getInstance(holder.getSecuredItem(),
- createReifiedStatement(s));
+ } else {
+ return SecuredReifiedStatementImpl.getInstance(
+ holder.getSecuredItem(), createReifiedStatement(s));
}
}
@Override
- public SecuredBag getBag( final Resource r )
- {
+ public SecuredBag getBag(final Resource r) {
checkRead();
checkRead(new Triple(r.asNode(), RDF.type.asNode(), RDF.Bag.asNode()));
- return SecuredBagImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem().getBag(r));
+ return SecuredBagImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().getBag(r));
}
@Override
- public SecuredBag getBag( final String uri )
- {
+ public SecuredBag getBag(final String uri) {
checkRead();
checkRead(new Triple(NodeFactory.createURI(uri), RDF.type.asNode(),
RDF.Bag.asNode()));
- return SecuredBagImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .getBag(uri));
+ return SecuredBagImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().getBag(uri));
}
@Override
- public SecuredGraph getGraph()
- {
+ public SecuredGraph getGraph() {
return graph;
}
@Override
- public Lock getLock()
- {
+ public Lock getLock() {
return holder.getBaseItem().getLock();
}
@Override
- public Map<String, String> getNsPrefixMap()
- {
+ public Map<String, String> getNsPrefixMap() {
checkRead();
return holder.getBaseItem().getNsPrefixMap();
}
@Override
- public String getNsPrefixURI( final String prefix )
- {
+ public String getNsPrefixURI(final String prefix) {
checkRead();
return holder.getBaseItem().getNsPrefixURI(prefix);
}
@Override
- public String getNsURIPrefix( final String uri )
- {
+ public String getNsURIPrefix(final String uri) {
checkRead();
return holder.getBaseItem().getNsURIPrefix(uri);
}
@Override
- public SecuredStatement getProperty( final Resource s, final Property p )
- {
+ public SecuredStatement getProperty(final Resource s, final Property p) {
final StmtIterator stmt = listStatements(s, p, (RDFNode) null);
- try
- {
- if (stmt.hasNext())
- {
- return SecuredStatementImpl.getInstance(holder.getSecuredItem(), stmt.next());
+ try {
+ if (stmt.hasNext()) {
+ return SecuredStatementImpl.getInstance(
+ holder.getSecuredItem(), stmt.next());
}
return null;
- }
- finally
- {
- if (stmt != null)
- {
+ } finally {
+ if (stmt != null) {
stmt.close();
}
}
}
@Override
- public SecuredProperty getProperty( final String uri )
- {
+ public SecuredProperty getProperty(final String uri) {
checkRead();
- return SecuredPropertyImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .getProperty(uri));
+ return SecuredPropertyImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().getProperty(uri));
}
@Override
- public SecuredProperty getProperty( final String nameSpace,
- final String localName )
- {
+ public SecuredProperty getProperty(final String nameSpace,
+ final String localName) {
checkRead();
- return SecuredPropertyImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .getProperty(nameSpace, localName));
+ return SecuredPropertyImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().getProperty(nameSpace, localName));
}
@Override
- public SecuredRDFNode getRDFNode( final Node n )
- {
+ public SecuredRDFNode getRDFNode(final Node n) {
RDFNode rdfNode = null;
- if (n.isLiteral())
- {
+ if (n.isLiteral()) {
rdfNode = ResourceFactory.createTypedLiteral(
n.getLiteralLexicalForm(), n.getLiteralDatatype());
- }
- else if (n.isURI())
- {
+ } else if (n.isURI()) {
rdfNode = ResourceFactory.createProperty(n.getURI());
- }
- else if (n.isBlank())
- {
+ } else if (n.isBlank()) {
rdfNode = ResourceFactory.createResource(n.getBlankNodeId()
.toString());
- }
- else
- {
+ } else {
throw new IllegalArgumentException("Illegal SecNode type: " + n);
}
- if (holder.getBaseItem().containsResource(rdfNode))
- {
+ if (holder.getBaseItem().containsResource(rdfNode)) {
checkRead();
- }
- else
- {
+ } else {
checkUpdate();
}
- if (n.isLiteral())
- {
- return SecuredLiteralImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .getRDFNode(n).asLiteral());
- }
- else
- {
- return SecuredResourceImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .getRDFNode(n).asResource());
+ if (n.isLiteral()) {
+ return SecuredLiteralImpl.getInstance(holder.getSecuredItem(),
+ holder.getBaseItem().getRDFNode(n).asLiteral());
+ } else {
+ return SecuredResourceImpl.getInstance(holder.getSecuredItem(),
+ holder.getBaseItem().getRDFNode(n).asResource());
}
}
@Override
- public RDFReader getReader()
- {
+ public RDFReader getReader() {
return holder.getBaseItem().getReader();
}
@Override
- public RDFReader getReader( final String lang )
- {
+ public RDFReader getReader(final String lang) {
return holder.getBaseItem().getReader(lang);
}
@@ -1547,82 +1265,67 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel
public String removeReader(String lang) throws IllegalArgumentException {
return holder.getBaseItem().removeReader(lang);
}
-
+
@Override
- public SecuredStatement getRequiredProperty( final Resource s,
- final Property p )
- {
+ public SecuredStatement getRequiredProperty(final Resource s,
+ final Property p) {
checkRead();
- if (canRead(Triple.ANY))
- {
- return SecuredStatementImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .getRequiredProperty(s, p));
- }
- else
- {
+ if (canRead(Triple.ANY)) {
+ return SecuredStatementImpl.getInstance(holder.getSecuredItem(),
+ holder.getBaseItem().getRequiredProperty(s, p));
+ } else {
final SecuredStatementIterator si = listStatements(s, p,
(RDFNode) null);
- try
- {
- if (si.hasNext())
- {
+ try {
+ if (si.hasNext()) {
return (SecuredStatement) si.next();
- }
- else
- {
+ } else {
throw new PropertyNotFoundException(p);
}
- }
- finally
- {
+ } finally {
si.close();
}
}
}
@Override
- public SecuredResource getResource( final String uri )
- {
+ public SecuredResource getResource(final String uri) {
return createResource(uri);
}
@Override
@Deprecated
- public SecuredResource getResource( final String uri, final ResourceF f )
- {
+ public SecuredResource getResource(final String uri, final ResourceF f) {
return createResource(uri, f);
}
@Override
- public SecuredSeq getSeq( final Resource r )
- {
+ public SecuredSeq getSeq(final Resource r) {
checkRead();
checkRead(new Triple(r.asNode(), RDF.type.asNode(), RDF.Seq.asNode()));
- return SecuredSeqImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem().getSeq(r));
+ return SecuredSeqImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().getSeq(r));
}
@Override
- public SecuredSeq getSeq( final String uri )
- {
+ public SecuredSeq getSeq(final String uri) {
checkRead();
checkRead(new Triple(NodeFactory.createURI(uri), RDF.type.asNode(),
RDF.Seq.asNode()));
- return SecuredSeqImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem()
- .getSeq(uri));
+ return SecuredSeqImpl.getInstance(holder.getSecuredItem(), holder
+ .getBaseItem().getSeq(uri));
}
@Override
- public RDFWriter getWriter()
- {
+ public RDFWriter getWriter() {
return holder.getBaseItem().getWriter();
}
@Override
- public RDFWriter getWriter( final String lang )
- {
+ public RDFWriter getWriter(final String lang) {
return holder.getBaseItem().getWriter(lang);
}
-
+
@SuppressWarnings("deprecation")
@Override
public void resetRDFWriterF() {
@@ -1636,64 +1339,49 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel
}
@Override
- public boolean independent()
- {
+ public boolean independent() {
return false;
}
@Override
- public Model intersection( final Model model )
- {
+ public Model intersection(final Model model) {
checkRead();
- if (!canRead(Triple.ANY))
- {
+ if (!canRead(Triple.ANY)) {
return holder.getBaseItem().intersection(model);
- }
- else
- {
+ } else {
return createCopy().intersection(model);
}
}
@Override
- public boolean isClosed()
- {
+ public boolean isClosed() {
return holder.getBaseItem().isClosed();
}
@Override
- public boolean isEmpty()
- {
+ public boolean isEmpty() {
checkRead();
return holder.getBaseItem().isEmpty();
}
@Override
- public boolean isIsomorphicWith( final Model g )
- {
+ public boolean isIsomorphicWith(final Model g) {
checkRead();
final boolean retval = holder.getBaseItem().isIsomorphicWith(g);
- if (retval && !canRead(Triple.ANY))
- {
+ if (retval && !canRead(Triple.ANY)) {
// in this case we have to check all the items in the graph to see
// if the user can read
// them all.
final ExtendedIterator<Statement> stmtIter = holder.getBaseItem()
.listStatements();
- try
- {
- while (stmtIter.hasNext())
- {
- if (!canRead(stmtIter.next().asTriple()))
- {
+ try {
+ while (stmtIter.hasNext()) {
+ if (!canRead(stmtIter.next())) {
return false;
}
}
- }
- finally
- {
- if (stmtIter != null)
- {
+ } finally {
+ if (stmtIter != null) {
stmtIter.close();
}
}
@@ -1702,531 +1390,495 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel
}
@Override
- public boolean isReified( final Statement s )
- {
+ public boolean isReified(final Statement s) {
checkRead();
- checkRead(s.asTriple());
+ checkRead(s);
final RSIterator it = listReifiedStatements(s);
- try
- {
+ try {
return it.hasNext();
- }
- finally
- {
+ } finally {
it.close();
}
}
@Override
- public void leaveCriticalSection()
- {
+ public void leaveCriticalSection() {
holder.getBaseItem().leaveCriticalSection();
}
@Override
public SecuredStatementIterator listLiteralStatements(
final Resource subject, final Property predicate,
- final boolean object )
- {
+ final boolean object) {
checkRead();
- return new SecuredStatementIterator(holder.getSecuredItem(), holder.getBaseItem()
+ return new SecuredStatementIterator(holder.getSecuredItem(), holder
+ .getBaseItem()
.listLiteralStatements(subject, predicate, object));
}
@Override
public SecuredStatementIterator listLiteralStatements(
- final Resource subject, final Property predicate, final char object )
- {
+ final Resource subject, final Property predicate, final char object) {
checkRead();
- return new SecuredStatementIterator(holder.getSecuredItem(), holder.getBaseItem()
+ return new SecuredStatementIterator(holder.getSecuredItem(), holder
+ .getBaseItem()
.listLiteralStatements(subject, predicate, object));
}
@Override
public SecuredStatementIterator listLiteralStatements(
final Resource subject, final Property predicate,
- final double object )
- {
+ final double object) {
checkRead();
- return new SecuredStatementIterator(holder.getSecuredItem(), holder.getBaseItem()
+ return new SecuredStatementIterator(holder.getSecuredItem(), holder
+ .getBaseItem()
.listLiteralStatements(subject, predicate, object));
}
@Override
public SecuredStatementIterator listLiteralStatements(
- final Resource subject, final Property predicate, final float object )
- {
+ final Resource subject, final Property predicate, final float object) {
checkRead();
- return new SecuredStatementIterator(holder.getSecuredItem(), holder.getBaseItem()
+ return new SecuredStatementIterator(holder.getSecuredItem(), holder
+ .getBaseItem()
.listLiteralStatements(subject, predicate, object));
}
@Override
public SecuredStatementIterator listLiteralStatements(
- final Resource subject, final Property predicate, final long object )
- {
+ final Resource subject, final Property predicate, final long object) {
checkRead();
- return new SecuredStatementIterator(holder.getSecuredItem(), holder.getBaseItem()
+ return new SecuredStatementIterator(holder.getSecuredItem(), holder
+ .getBaseItem()
.listLiteralStatements(subject, predicate, object));
}
@Override
- public NsIterator listNameSpaces()
- {
+ public NsIterator listNameSpaces() {
checkRead();
return holder.getBaseItem().listNameSpaces();
}
@Override
- public SecuredNodeIterator<RDFNode> listObjects()
- {
+ public SecuredNodeIterator<RDFNode> listObjects() {
checkRead();
ExtendedIterator<RDFNode> nIter = holder.getBaseItem().listObjects();
- if (!canRead(SecTriple.ANY))
- {
- nIter = nIter.filterKeep( new ObjectFilter());
+ if (!canRead(Triple.ANY)) {
+ nIter = nIter.filterKeep(new ObjectFilter());
}
return new SecuredNodeIterator<RDFNode>(holder.getSecuredItem(), nIter);
}
@Override
- public SecuredNodeIterator<RDFNode> listObjectsOfProperty( final Property p )
- {
+ public SecuredNodeIterator<RDFNode> listObjectsOfProperty(final Property p) {
checkRead();
- ExtendedIterator<RDFNode> nIter = holder.getBaseItem().listObjectsOfProperty(p);
- if (!canRead(SecTriple.ANY))
- {
- nIter = nIter.filterKeep( new ObjectFilter(p));
+ ExtendedIterator<RDFNode> nIter = holder.getBaseItem()
+ .listObjectsOfProperty(p);
+ if (!canRead(Triple.ANY)) {
+ nIter = nIter.filterKeep(new ObjectFilter(p));
}
return new SecuredNodeIterator<RDFNode>(holder.getSecuredItem(), nIter);
}
@Override
- public SecuredNodeIterator<RDFNode> listObjectsOfProperty( final Resource s,
- final Property p )
- {
+ public SecuredNodeIterator<RDFNode> listObjectsOfProperty(final Resource s,
+ final Property p) {
checkRead();
- ExtendedIterator<RDFNode> nIter = holder.getBaseItem().listObjectsOfProperty(s, p);
- if (!canRead(SecTriple.ANY))
- {
- nIter = nIter.filterKeep( new ObjectFilter(p));
+ ExtendedIterator<RDFNode> nIter = holder.getBaseItem()
+ .listObjectsOfProperty(s, p);
+ if (!canRead(Triple.ANY)) {
+ nIter = nIter.filterKeep(new ObjectFilter(p));
}
return new SecuredNodeIterator<RDFNode>(holder.getSecuredItem(), nIter);
}
@Override
- public SecuredRSIterator listReifiedStatements()
- {
+ public SecuredRSIterator listReifiedStatements() {
checkRead();
- return new SecuredRSIterator(holder.getSecuredItem(), holder.getBaseItem()
- .listReifiedStatements());
+ return new SecuredRSIterator(holder.getSecuredItem(), holder
+ .getBaseItem().listReifiedStatements());
}
@Override
- public SecuredRSIterator listReifiedStatements( final Statement st )
- {
+ public SecuredRSIterator listReifiedStatements(final Statement st) {
checkRead();
checkRead(st);
- return new SecuredRSIterator(holder.getSecuredItem(), holder.getBaseItem()
- .listReifiedStatements(st));
+ return new SecuredRSIterator(holder.getSecuredItem(), holder
+ .getBaseItem().listReifiedStatements(st));
}
@Override
- public SecuredResIterator listResourcesWithProperty( final Property p )
- {
+ public SecuredResIterator listResourcesWithProperty(final Property p) {
checkRead();
- ExtendedIterator<Resource> rIter = holder.getBaseItem().listResourcesWithProperty(p);
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter(p));
+ ExtendedIterator<Resource> rIter = holder.getBaseItem()
+ .listResourcesWithProperty(p);
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter(p));
}
- return new SecuredResIterator( holder.getSecuredItem(), rIter );
-
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
+
}
@Override
- public SecuredResIterator listResourcesWithProperty( final Property p,
- final boolean o )
- {
+ public SecuredResIterator listResourcesWithProperty(final Property p,
+ final boolean o) {
checkRead();
- ExtendedIterator<Resource> rIter = holder.getBaseItem().listResourcesWithProperty(p, o);
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter(p, ResourceFactory.createTypedLiteral(o)));
+ ExtendedIterator<Resource> rIter = holder.getBaseItem()
+ .listResourcesWithProperty(p, o);
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter(p, ResourceFactory
+ .createTypedLiteral(o)));
}
- return new SecuredResIterator( holder.getSecuredItem(), rIter );
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
}
@Override
- public SecuredResIterator listResourcesWithProperty( final Property p,
- final char o )
- {
+ public SecuredResIterator listResourcesWithProperty(final Property p,
+ final char o) {
checkRead();
- ExtendedIterator<Resource> rIter = holder.getBaseItem().listResourcesWithProperty(p, o);
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter(p, ResourceFactory.createTypedLiteral(o)));
+ ExtendedIterator<Resource> rIter = holder.getBaseItem()
+ .listResourcesWithProperty(p, o);
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter(p, ResourceFactory
+ .createTypedLiteral(o)));
}
- return new SecuredResIterator( holder.getSecuredItem(), rIter );
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
}
@Override
- public SecuredResIterator listResourcesWithProperty( final Property p,
- final double o )
- {
+ public SecuredResIterator listResourcesWithProperty(final Property p,
+ final double o) {
checkRead();
- ExtendedIterator<Resource> rIter = holder.getBaseItem().listResourcesWithProperty(p, o);
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter(p, ResourceFactory.createTypedLiteral(o)));
+ ExtendedIterator<Resource> rIter = holder.getBaseItem()
+ .listResourcesWithProperty(p, o);
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter(p, ResourceFactory
+ .createTypedLiteral(o)));
}
- return new SecuredResIterator( holder.getSecuredItem(), rIter );
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
}
@Override
- public SecuredResIterator listResourcesWithProperty( final Property p,
- final float o )
- {
+ public SecuredResIterator listResourcesWithProperty(final Property p,
+ final float o) {
checkRead();
- ExtendedIterator<Resource> rIter = holder.getBaseItem().listResourcesWithProperty(p, o);
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter(p, ResourceFactory.createTypedLiteral(o)));
+ ExtendedIterator<Resource> rIter = holder.getBaseItem()
+ .listResourcesWithProperty(p, o);
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter(p, ResourceFactory
+ .createTypedLiteral(o)));
}
- return new SecuredResIterator( holder.getSecuredItem(), rIter );
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
}
@Override
- public SecuredResIterator listResourcesWithProperty( final Property p,
- final long o )
- {
+ public SecuredResIterator listResourcesWithProperty(final Property p,
+ final long o) {
checkRead();
- ExtendedIterator<Resource> rIter = holder.getBaseItem().listResourcesWithProperty(p, o);
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter(p, ResourceFactory.createTypedLiteral(o)));
+ ExtendedIterator<Resource> rIter = holder.getBaseItem()
+ .listResourcesWithProperty(p, o);
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter(p, ResourceFactory
+ .createTypedLiteral(o)));
}
- return new SecuredResIterator( holder.getSecuredItem(), rIter );
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
}
@Override
- public SecuredResIterator listResourcesWithProperty( final Property p,
- final Object o )
- {
+ public SecuredResIterator listResourcesWithProperty(final Property p,
+ final Object o) {
checkRead();
- ExtendedIterator<Resource> rIter = holder.getBaseItem().listResourcesWithProperty(p, o);
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter(p, ResourceFactory.createTypedLiteral(o)));
+ ExtendedIterator<Resource> rIter = holder.getBaseItem()
+ .listResourcesWithProperty(p, o);
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter(p, ResourceFactory
+ .createTypedLiteral(o)));
}
- return new SecuredResIterator( holder.getSecuredItem(), rIter );
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
}
@Override
- public SecuredResIterator listResourcesWithProperty( final Property p,
- final RDFNode o )
- {
+ public SecuredResIterator listResourcesWithProperty(final Property p,
+ final RDFNode o) {
checkRead();
- ExtendedIterator<Resource> rIter = holder.getBaseItem().listResourcesWithProperty(p, o);
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter(p, o));
+ ExtendedIterator<Resource> rIter = holder.getBaseItem()
+ .listResourcesWithProperty(p, o);
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter(p, o));
}
- return new SecuredResIterator( holder.getSecuredItem(), rIter );
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
}
@Override
- public SecuredStatementIterator listStatements()
- {
+ public SecuredStatementIterator listStatements() {
checkRead();
- return new SecuredStatementIterator(holder.getSecuredItem(), holder.getBaseItem()
- .listStatements());
+ return new SecuredStatementIterator(holder.getSecuredItem(), holder
+ .getBaseItem().listStatements());
}
@Override
- public SecuredStatementIterator listStatements( final Resource s,
- final Property p, final RDFNode o )
- {
+ public SecuredStatementIterator listStatements(final Resource s,
+ final Property p, final RDFNode o) {
checkRead();
- return new SecuredStatementIterator(holder.getSecuredItem(), holder.getBaseItem()
- .listStatements(s, p, o));
+ return new SecuredStatementIterator(holder.getSecuredItem(), holder
+ .getBaseItem().listStatements(s, p, o));
}
@Override
- public SecuredStatementIterator listStatements( final Resource subject,
- final Property predicate, final String object )
- {
+ public SecuredStatementIterator listStatements(final Resource subject,
+ final Property predicate, final String object) {
checkRead();
- return new SecuredStatementIterator(holder.getSecuredItem(), holder.getBaseItem()
- .listStatements(subject, predicate, object));
+ return new SecuredStatementIterator(holder.getSecuredItem(), holder
+ .getBaseItem().listStatements(subject, predicate, object));
}
@Override
- public SecuredStatementIterator listStatements( final Resource subject,
- final Property predicate, final String object, final String lang )
- {
+ public SecuredStatementIterator listStatements(final Resource subject,
+ final Property predicate, final String object, final String lang) {
checkRead();
- return new SecuredStatementIterator(holder.getSecuredItem(), holder.getBaseItem()
- .listStatements(subject, predicate, object, lang));
+ return new SecuredStatementIterator(holder.getSecuredItem(), holder
+ .getBaseItem().listStatements(subject, predicate, object, lang));
}
@Override
- public SecuredStatementIterator listStatements( final Selector s )
- {
+ public SecuredStatementIterator listStatements(final Selector s) {
checkRead();
- return new SecuredStatementIterator(holder.getSecuredItem(), holder.getBaseItem()
- .listStatements(s));
+ return new SecuredStatementIterator(holder.getSecuredItem(), holder
+ .getBaseItem().listStatements(s));
}
@Override
- public SecuredResIterator listSubjects()
- {
+ public SecuredResIterator listSubjects() {
checkRead();
ExtendedIterator<Resource> rIter = holder.getBaseItem().listSubjects();
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter());
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter());
}
- return new SecuredResIterator(holder.getSecuredItem(),rIter);
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
}
@Override
- public SecuredResIterator listSubjectsWithProperty( final Property p )
- {
+ public SecuredResIterator listSubjectsWithProperty(final Property p) {
checkRead();
- ExtendedIterator<Resource> rIter = holder.getBaseItem().listSubjectsWithProperty(p);
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter(p));
+ ExtendedIterator<Resource> rIter = holder.getBaseItem()
+ .listSubjectsWithProperty(p);
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter(p));
}
- return new SecuredResIterator(holder.getSecuredItem(),rIter);
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
}
@Override
- public SecuredResIterator listSubjectsWithProperty( final Property p,
- final RDFNode o )
- {
+ public SecuredResIterator listSubjectsWithProperty(final Property p,
+ final RDFNode o) {
checkRead();
- ExtendedIterator<Resource> rIter = holder.getBaseItem().listSubjectsWithProperty(p, o);
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter(p, o));
+ ExtendedIterator<Resource> rIter = holder.getBaseItem()
+ .listSubjectsWithProperty(p, o);
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter(p, o));
}
- return new SecuredResIterator(holder.getSecuredItem(),rIter);
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
}
@Override
- public SecuredResIterator listSubjectsWithProperty( final Property p,
- final String o )
- {
+ public SecuredResIterator listSubjectsWithProperty(final Property p,
+ final String o) {
checkRead();
- ExtendedIterator<Resource> rIter = holder.getBaseItem().listSubjectsWithProperty(p, o);
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter(p, ResourceFactory.createPlainLiteral(o)));
+ ExtendedIterator<Resource> rIter = holder.getBaseItem()
+ .listSubjectsWithProperty(p, o);
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter(p, ResourceFactory
+ .createPlainLiteral(o)));
}
- return new SecuredResIterator(holder.getSecuredItem(),rIter);
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
}
@Override
- public SecuredResIterator listSubjectsWithProperty( final Property p,
- final String o, final String l )
- {
+ public SecuredResIterator listSubjectsWithProperty(final Property p,
+ final String o, final String l) {
checkRead();
- ExtendedIterator<Resource> rIter = holder.getBaseItem().listSubjectsWithProperty(p, o, l);
- if (!canRead( SecTriple.ANY))
- {
- rIter=rIter.filterKeep( new ResourceFilter(p, ResourceFactory.createLangLiteral(o, l)));
+ ExtendedIterator<Resource> rIter = holder.getBaseItem()
+ .listSubjectsWithProperty(p, o, l);
+ if (!canRead(Triple.ANY)) {
+ rIter = rIter.filterKeep(new ResourceFilter(p, ResourceFactory
+ .createLangLiteral(o, l)));
}
- return new SecuredResIterator(holder.getSecuredItem(),rIter);
+ return new SecuredResIterator(holder.getSecuredItem(), rIter);
}
@Override
- public SecuredPrefixMapping lock()
- {
+ public SecuredPrefixMapping lock() {
checkUpdate();
holder.getBaseItem().lock();
return holder.getSecuredItem();
}
@Override
- public SecuredModel notifyEvent( final Object e )
- {
+ public SecuredModel notifyEvent(final Object e) {
holder.getBaseItem().notifyEvent(e);
return holder.getSecuredItem();
}
@Override
- public String qnameFor( final String uri )
- {
+ public String qnameFor(final String uri) {
checkRead();
return holder.getBaseItem().qnameFor(uri);
}
@Override
- public SecuredModel query( final Selector s )
- {
+ public SecuredModel query(final Selector s) {
checkRead();
- return SecuredModelImpl.getInstance(holder.getSecuredItem(),
- holder.getBaseItem().query(new SecuredSelector(holder.getSecuredItem(), s)));
+ return SecuredModelImpl.getInstance(
+ holder.getSecuredItem(),
+ holder.getBaseItem().query(
+ new SecuredSelector(holder.getSecuredItem(), s)));
}
@Override
- public SecuredModel read( final InputStream in, final String base )
- {
+ public SecuredModel read(final InputStream in, final String base) {
checkUpdate();
-// try
-// {
- SecuredModelImpl.readerFactory.getReader().read(holder.getSecuredItem(), in, base);
- return holder.getSecuredItem();
-// }
-// catch (final JenaException e)
-// {
-// if ((e.getCause() != null)
-// && (e.getCause() instanceof AccessDeniedRuntimeException))
-// {
-// throw (AccessDeniedRuntimeException) e.getCause();
-// }
-// throw e;
-// }
- }
-
- @Override
- public SecuredModel read( final InputStream in, final String base,
- final String lang )
- {
+ // try
+ // {
+ SecuredModelImpl.readerFactory.getReader().read(
+ holder.getSecuredItem(), in, base);
+ return holder.getSecuredItem();
+ // }
+ // catch (final JenaException e)
+ // {
+ // if ((e.getCause() != null)
+ // && (e.getCause() instanceof AccessDeniedRuntimeException))
+ // {
+ // throw (AccessDeniedRuntimeException) e.getCause();
+ // }
+ // throw e;
+ // }
+ }
+
+ @Override
+ public SecuredModel read(final InputStream in, final String base,
+ final String lang) {
checkUpdate();
-// try
-// {
- SecuredModelImpl.readerFactory.getReader(lang).read(holder.getSecuredItem(), in, base);
- return holder.getSecuredItem();
-// }
-// catch (final JenaException e)
-// {
-// if ((e.getCause() != null)
-// && (e.getCause() instanceof AccessDeniedRuntimeException))
-// {
-// throw (AccessDeniedRuntimeException) e.getCause();
-// }
-// throw e;
-// }
- }
-
- @Override
- public SecuredModel read( final Reader reader, final String base )
- {
+ // try
+ // {
+ SecuredModelImpl.readerFactory.getReader(lang).read(
+ holder.getSecuredItem(), in, base);
+ return holder.getSecuredItem();
+ // }
+ // catch (final JenaException e)
+ // {
+ // if ((e.getCause() != null)
+ // && (e.getCause() instanceof AccessDeniedRuntimeException))
+ // {
+ // throw (AccessDeniedRuntimeException) e.getCause();
+ // }
+ // throw e;
+ // }
+ }
+
+ @Override
+ public SecuredModel read(final Reader reader, final String base) {
checkUpdate();
-// try
-// {
- SecuredModelImpl.readerFactory.getReader().read(holder.getSecuredItem(), reader, base);
- return holder.getSecuredItem();
-// }
-// catch (final JenaException e)
-// {
-// if ((e.getCause() != null)
-// && (e.getCause() instanceof AccessDeniedRuntimeException))
-// {
-// throw (AccessDeniedRuntimeException) e.getCause();
-// }
-// throw e;
-// }
- }
-
- @Override
- public SecuredModel read( final Reader reader, final String base,
- final String lang )
- {
+ // try
+ // {
+ SecuredModelImpl.readerFactory.getReader().read(
+ holder.getSecuredItem(), reader, base);
+ return holder.getSecuredItem();
+ // }
+ // catch (final JenaException e)
+ // {
+ // if ((e.getCause() != null)
+ // && (e.getCause() instanceof AccessDeniedRuntimeException))
+ // {
+ // throw (AccessDeniedRuntimeException) e.getCause();
+ // }
+ // throw e;
+ // }
+ }
+
+ @Override
+ public SecuredModel read(final Reader reader, final String base,
+ final String lang) {
checkUpdate();
-// try
-// {
- SecuredModelImpl.readerFactory.getReader(lang).read(holder.getSecuredItem(), reader,
- base);
- return holder.getSecuredItem();
-// }
-// catch (final JenaException e)
-// {
-// if ((e.getCause() != null)
-// && (e.getCause() instanceof AccessDeniedRuntimeException))
-// {
-// throw (AccessDeniedRuntimeException) e.getCause();
-// }
-// throw e;
-// }
- }
-
- @Override
- public SecuredModel read( final String url )
- {
+ // try
+ // {
+ SecuredModelImpl.readerFactory.getReader(lang).read(
+ holder.getSecuredItem(), reader, base);
+ return holder.getSecuredItem();
+ // }
+ // catch (final JenaException e)
+ // {
+ // if ((e.getCause() != null)
+ // && (e.getCause() instanceof AccessDeniedRuntimeException))
+ // {
+ // throw (AccessDeniedRuntimeException) e.getCause();
+ // }
+ // throw e;
+ // }
+ }
+
+ @Override
+ public SecuredModel read(final String url) {
checkUpdate();
-// try
-// {
- SecuredModelImpl.readerFactory.getReader().read(holder.getSecuredItem(), url);
- return holder.getSecuredItem();
-// }
-// catch (final JenaException e)
-// {
-// if ((e.getCause() != null)
-// && (e.getCause() instanceof AccessDeniedRuntimeException))
-// {
-// throw (AccessDeniedRuntimeException) e.getCause();
-// }
-// throw e;
-// }
- }
-
- @Override
- public SecuredModel read( final String url, final String lang )
- {
+ // try
+ // {
+ SecuredModelImpl.readerFactory.getReader().read(
+ holder.getSecuredItem(), url);
+ return holder.getSecuredItem();
+ // }
+ // catch (final JenaException e)
+ // {
+ // if ((e.getCause() != null)
+ // && (e.getCause() instanceof AccessDeniedRuntimeException))
+ // {
+ // throw (AccessDeniedRuntimeException) e.getCause();
+ // }
+ // throw e;
+ // }
+ }
+
+ @Override
+ public SecuredModel read(final String url, final String lang) {
checkUpdate();
-// try
-// {
- SecuredModelImpl.readerFactory.getReader(lang).read(holder.getSecuredItem(), url);
- return holder.getSecuredItem();
-// }
-// catch (final JenaException e)
-// {
-// if ((e.getCause() != null)
-// && (e.getCause() instanceof AccessDeniedRuntimeException))
-// {
-// throw (AccessDeniedRuntimeException) e.getCause();
-// }
-// throw e;
-// }
- }
-
- @Override
- public SecuredModel read( final String url, final String base,
- final String lang )
- {
- try
- {
+ // try
+ // {
+ SecuredModelImpl.readerFactory.getReader(lang).read(
+ holder.getSecuredItem(), url);
+ return holder.getSecuredItem();
+ // }
+ // catch (final JenaException e)
+ // {
+ // if ((e.getCause() != null)
+ // && (e.getCause() instanceof AccessDeniedRuntimeException))
+ // {
+ // throw (AccessDeniedRuntimeException) e.getCause();
+ // }
+ // throw e;
+ // }
+ }
+
+ @Override
+ public SecuredModel read(final String url, final String base,
+ final String lang) {
+ try {
final InputStream is = new URL(url).openStream();
- try
- {
+ try {
read(is, base, lang);
- }
- finally
- {
- if (null != is)
- {
+ } finally {
+ if (null != is) {
is.close();
}
}
- }
- catch (fin
<TRUNCATED>
[4/4] jena git commit: Removed AccessDeniedRuntimeException as it was
all commented out.
Posted by cl...@apache.org.
Removed AccessDeniedRuntimeException as it was all commented out.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/2940ec30
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/2940ec30
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/2940ec30
Branch: refs/heads/master
Commit: 2940ec308561234bb39e7ab9436cdf4dea58bc14
Parents: 1dd6cfd
Author: Claude Warren <cl...@apache.org>
Authored: Sun Jul 19 10:26:10 2015 +0100
Committer: Claude Warren <cl...@apache.org>
Committed: Sun Jul 19 10:26:10 2015 +0100
----------------------------------------------------------------------
.../AccessDeniedRuntimeException.java | 66 --------------------
1 file changed, 66 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/2940ec30/jena-permissions/src/main/java/org/apache/jena/permissions/AccessDeniedRuntimeException.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/AccessDeniedRuntimeException.java b/jena-permissions/src/main/java/org/apache/jena/permissions/AccessDeniedRuntimeException.java
deleted file mode 100644
index 19bba34..0000000
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/AccessDeniedRuntimeException.java
+++ /dev/null
@@ -1,66 +0,0 @@
-///*
-// * Licensed to the Apache Software Foundation (ASF) under one
-// * or more contributor license agreements. See the NOTICE file
-// * distributed with this work for additional information
-// * regarding copyright ownership. The ASF licenses this file
-// * to you under the Apache License, Version 2.0 (the
-// * "License"); you may not use this file except in compliance
-// * with the License. You may obtain a copy of the License at
-// *
-// * http://www.apache.org/licenses/LICENSE-2.0
-// *
-// * Unless required by applicable law or agreed to in writing, software
-// * distributed under the License is distributed on an "AS IS" BASIS,
-// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// * See the License for the specific language governing permissions and
-// * limitations under the License.
-// */
-//
-//package org.apache.jena.permissions;
-//
-//import org.apache.jena.permissions.SecurityEvaluator.Action;
-//import org.apache.jena.permissions.SecurityEvaluator.SecNode;
-//
-///**
-// * Exception thrown by the security system when an action is not allowed.
-// *
-// * Contains the graphIRI and the action that was not allowed.
-// */
-//public class AccessDeniedRuntimeException extends RuntimeException
-//{
-// private static final long serialVersionUID = 2789332975364811725L;
-//
-// private String triple;
-//
-// /**
-// * Constructor.
-// * @param uri The SecNode that identifies graph with the security.
-// * @param action The action that was prohibited.
-// */
-// public AccessDeniedRuntimeException( final SecNode uri, final Action action )
-// {
-// super(String.format("securedModel sec. %s: %s", uri, action));
-// }
-//
-// /**
-// * Constructor.
-// * @param uri The SecNode that identifies graph with the security.
-// * @param triple The triple The triple on which the action was prohibited.
-// * @param action The action that was prohibited.
-// */
-// public AccessDeniedRuntimeException( final SecNode uri, final String triple,
-// final Action action )
-// {
-// super(String.format("triple sec. %s: %s", uri, action));
-// this.triple = triple;
-// }
-//
-// /**
-// * @return The triple on which the action was prohibited. May be null.
-// */
-// public String getTriple()
-// {
-// return triple;
-// }
-//
-//}