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 2013/08/01 23:47:47 UTC

svn commit: r1509440 [3/8] - in /jena/Experimental/jena-security: ./ src/ src/example/ src/example/org/ src/example/org/apache/ src/example/org/apache/jena/ src/example/org/apache/jena/security/ src/example/org/apache/jena/security/example/ src/main/ s...

Added: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredModel.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredModel.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredModel.java (added)
+++ jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredModel.java Thu Aug  1 21:47:45 2013
@@ -0,0 +1,1602 @@
+/*
+ * 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.security.model;
+
+import com.hp.hpl.jena.datatypes.RDFDatatype;
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.rdf.model.AnonId;
+import com.hp.hpl.jena.rdf.model.Literal;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelChangedListener;
+import com.hp.hpl.jena.rdf.model.NsIterator;
+import com.hp.hpl.jena.rdf.model.Property;
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.rdf.model.ReifiedStatement;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.rdf.model.ResourceF;
+import com.hp.hpl.jena.rdf.model.Selector;
+import com.hp.hpl.jena.rdf.model.Statement;
+import com.hp.hpl.jena.rdf.model.StmtIterator;
+import com.hp.hpl.jena.shared.PropertyNotFoundException;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.Writer;
+import java.util.Calendar;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.jena.security.AccessDeniedException;
+import org.apache.jena.security.graph.SecuredGraph;
+import org.apache.jena.security.graph.SecuredPrefixMapping;
+import org.apache.jena.security.model.impl.SecuredNodeIterator;
+import org.apache.jena.security.model.impl.SecuredRSIterator;
+import org.apache.jena.security.model.impl.SecuredResIterator;
+import org.apache.jena.security.model.impl.SecuredStatementIterator;
+
+/**
+ * The interface for secured Model instances.
+ * 
+ * Use the SecuredModel.Factory to create instances
+ */
+public interface SecuredModel extends Model, SecuredPrefixMapping
+{
+
+	@Override
+	public SecuredModel abort();
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create for each statement as a triple.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel add( final List<Statement> statements )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create for each statement in the securedModel as a triple.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel add( final Model m ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create for each statement in the securedModel as a triple.
+	 * @sec.triple Create for each reified statement if not supressReifications.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel add( final Model m, final boolean suppressReifications )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create the triple SecTriple(s,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel add( final Resource s, final Property p, final RDFNode o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create the triple SecTriple(s,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel add( final Resource s, final Property p, final String o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create the triple SecTriple(s,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel add( final Resource s, final Property p,
+			final String o, final boolean wellFormed )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create the triple SecTriple(s,p,literal(lex,datatype))
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel add( final Resource s, final Property p,
+			final String lex, final RDFDatatype datatype )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create the triple SecTriple(s,p,literal(o,l,false))
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel add( final Resource s, final Property p,
+			final String o, final String l ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create the statement as a triple
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel add( final Statement s ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create all the statements as triples.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel add( final Statement[] statements )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create all the statements as triples.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel add( final StmtIterator iter )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create triple(s,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel addLiteral( final Resource s, final Property p,
+			final boolean o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create triple(s,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel addLiteral( final Resource s, final Property p,
+			final char o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create triple(s,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel addLiteral( final Resource s, final Property p,
+			final double o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create triple(s,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel addLiteral( final Resource s, final Property p,
+			final float o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create triple(s,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel addLiteral( final Resource s, final Property p,
+			final int o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create triple(s,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel addLiteral( final Resource s, final Property p,
+			final Literal o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create triple(s,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel addLiteral( final Resource s, final Property p,
+			final long o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create triple(s,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	@Deprecated
+	public SecuredModel addLiteral( final Resource s, final Property p,
+			final Object o ) throws AccessDeniedException;
+
+	@Override
+	public SecuredRDFNode asRDFNode( final Node n );
+
+	@Override
+	/**
+	 * @sec.graph Read if t does exist
+	 * @sec.graph Update it t does not exist
+	 * @sec.triple Read if t does exist
+	 * @sec.triple Create if t does exist
+	 * @throws AccessDeniedException
+	 */
+	public SecuredStatement asStatement( final Triple t )
+			throws AccessDeniedException;
+
+	@Override
+	public SecuredModel begin();
+
+	@Override
+	public SecuredModel commit();
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( s, p, SecNode.ANY )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean contains( final Resource s, final Property p )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( s, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean contains( final Resource s, final Property p, final RDFNode o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( s, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean contains( final Resource s, final Property p, final String o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( s, p, literal(o,l,null) )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean contains( final Resource s, final Property p,
+			final String o, final String l ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read s as a triple with null replaced by SecNode.ANY
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean contains( final Statement s ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read every statement in securedModel.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean containsAll( final Model model )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read every statement
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean containsAll( final StmtIterator iter )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read any statement in securedModel to be included in check, if
+	 *            no
+	 *            statement in securedModel can be read will return false;
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean containsAny( final Model model )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read any statement in iter to be included in check, if no
+	 *            statement in iter can be read will return false;
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean containsAny( final StmtIterator iter )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( s, p, literal(o) )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean containsLiteral( final Resource s, final Property p,
+			final boolean o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( s, p, literal(o) )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean containsLiteral( final Resource s, final Property p,
+			final char o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( s, p, literal(o) )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean containsLiteral( final Resource s, final Property p,
+			final double o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( s, p, literal(o) )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean containsLiteral( final Resource s, final Property p,
+			final float o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( s, p, literal(o) )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean containsLiteral( final Resource s, final Property p,
+			final int o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( s, p, literal(o) )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean containsLiteral( final Resource s, final Property p,
+			final long o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( s, p, typedLiteral(o) )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean containsLiteral( final Resource s, final Property p,
+			final Object o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( s, p, resource) where SecTriple(s,p,resource) is in the
+	 *            securedModel.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean containsResource( final RDFNode r )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( SecNode.ANY, RDF.type, Rdf.Alt)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredAlt createAlt() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( uri, RDF.type, Rdf.Alt)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredAlt createAlt( final String uri )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( SecNode.ANY, RDF.type, Rdf.Bag)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredBag createBag() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( uri, RDF.type, Rdf.Bag)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredBag createBag( final String uri )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredRDFList createList() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( RDF.nil, SecNode.IGNORE, SecNode.IGNORE)
+	 * @sec.triple Create for each member SecTriple(SecNode.ANY,
+	 *            RDF.first.asNode(),
+	 *            member.asNode())
+	 * @sec.triple Create SecTriple(SecNode.ANY, RDF.rest.asNode(), SecNode.ANY)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredRDFList createList( final Iterator<? extends RDFNode> members )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( RDF.nil, SecNode.IGNORE, SecNode.IGNORE)
+	 * @sec.triple Create for each member SecTriple(SecNode.ANY,
+	 *            RDF.first.asNode(),
+	 *            member.asNode())
+	 * @sec.triple Create SecTriple(SecNode.ANY, RDF.rest.asNode(), SecNode.ANY)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredRDFList createList( final RDFNode[] members )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s,p,o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement createLiteralStatement( final Resource s,
+			final Property p, final boolean o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s,p,o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement createLiteralStatement( final Resource s,
+			final Property p, final char o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s,p,o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement createLiteralStatement( final Resource s,
+			final Property p, final double o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s,p,o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement createLiteralStatement( final Resource s,
+			final Property p, final float o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s,p,o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement createLiteralStatement( final Resource s,
+			final Property p, final int o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s,p,o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement createLiteralStatement( final Resource s,
+			final Property p, final long o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s,p,o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement createLiteralStatement( final Resource s,
+			final Property p, final Object o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s,p,o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Property createProperty( final String uri )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s,p,o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Property createProperty( final String nameSpace,
+			final String localName ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Read s as a triple
+	 * @sec.triple create SecTriple( SecNode.Future, RDF.subject, t.getSubject()
+	 *            )
+	 * @sec.triple create SecTriple( SecNode.Future, RDF.subject,
+	 *            t.getPredicate() )
+	 * @sec.triple create SecTriple( SecNode.Future, RDF.subject, t.getObject() )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public ReifiedStatement createReifiedStatement( final Statement s )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Read s as a triple
+	 * @sec.triple create SecTriple( uri, RDF.subject, t.getSubject() )
+	 * @sec.triple create SecTriple( uri, RDF.subject, t.getPredicate() )
+	 * @sec.triple create SecTriple( uri, RDF.subject, t.getObject() )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public ReifiedStatement createReifiedStatement( final String uri,
+			final Statement s ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Read s as a triple
+	 * @sec.triple create SecTriple( SecNode.FUTURE, SecNode.IGNORE,
+	 *            SecNode.IGNORE )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResource createResource() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Read s as a triple
+	 * @sec.triple create SecTriple( Anonymous(id), SecNode.IGNORE,
+	 *            SecNode.IGNORE )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResource createResource( final AnonId id )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.type, type )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResource createResource( final Resource type )
+			throws AccessDeniedException;
+
+	@Override
+	@Deprecated
+	public SecuredResource createResource( final ResourceF f );
+
+	@Override
+	public SecuredResource createResource( final String uri );
+
+	/**
+	 * @sec.graph Update if uri exists
+	 * @sec.graph Create if uri does not exist
+	 * @sec.triple Read if SecTriple( uri, RDF.type, type ) exists
+	 * @sec.triple Create if SecTriple( uri, RDF.type, type ) does not exist
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResource createResource( final String uri, final Resource type )
+			throws AccessDeniedException;
+
+	@Override
+	@Deprecated
+	public SecuredResource createResource( final String uri, final ResourceF f );
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.type, RDF.Alt )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredSeq createSeq() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( uri, RDF.type, RDF.Alt )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredSeq createSeq( final String uri )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement createStatement( final Resource s,
+			final Property p, final RDFNode o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement createStatement( final Resource s,
+			final Property p, final String o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement createStatement( final Resource s,
+			final Property p, final String o, final boolean wellFormed )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s, p, literal(o,l,false ))
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement createStatement( final Resource s,
+			final Property p, final String o, final String l )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( s, p, literal(o,l,wellFormed )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement createStatement( final Resource s,
+			final Property p, final String o, final String l,
+			final boolean wellFormed ) throws AccessDeniedException;
+
+	@Override
+	public SecuredLiteral createTypedLiteral( final boolean v );
+
+	@Override
+	public Literal createTypedLiteral( final Calendar d );
+
+	@Override
+	public SecuredLiteral createTypedLiteral( final char v );
+
+	@Override
+	public SecuredLiteral createTypedLiteral( final double v );
+
+	@Override
+	public SecuredLiteral createTypedLiteral( final float v );
+
+	@Override
+	public SecuredLiteral createTypedLiteral( final int v );
+
+	@Override
+	public SecuredLiteral createTypedLiteral( final long v );
+
+	@Override
+	public SecuredLiteral createTypedLiteral( final Object value );
+
+	@Override
+	public SecuredLiteral createTypedLiteral( final Object value,
+			final RDFDatatype dtype );
+
+	@Override
+	public SecuredLiteral createTypedLiteral( final Object value,
+			final String typeURI );
+
+	@Override
+	public SecuredLiteral createTypedLiteral( final String v );
+
+	@Override
+	public SecuredLiteral createTypedLiteral( final String lex,
+			final RDFDatatype dtype );
+
+	@Override
+	public SecuredLiteral createTypedLiteral( final String lex,
+			final String typeURI );
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read for every triple contributed to the difference.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Model difference( final Model model ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read if read lock is requested
+	 * @sec.graph Update if write lock is requested
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public void enterCriticalSection( final boolean readLockRequested )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public String expandPrefix( final String prefixed )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( resource, RDF.type, RDF.alt )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredAlt getAlt( final Resource r ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( uri, RDF.type, RDF.alt )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredAlt getAlt( final String uri ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read if statement exists
+	 * @sec.graph Update if statement does not exist
+	 * @sec.triple Read s as a triple
+	 * @sec.triple Read SecTriple( result, RDF.subject, s.getSubject() ) if
+	 *            reification existed
+	 * @sec.triple Read SecTriple( result, RDF.predicate, s.getPredicate() ) if
+	 *            reification existed
+	 * @sec.triple Read SecTriple( result, RDF.object, s.getObject() ) if
+	 *            reification existed
+	 * @sec.triple Create SecTriple( result, RDF.subject, s.getSubject() ) if
+	 *            reification did not exist.
+	 * @sec.triple Create SecTriple( result, RDF.redicate, s.getPredicate() ) if
+	 *            reification did not exist
+	 * @sec.triple Create SecTriple( result, RDF.object, s.getObject() ) if
+	 *            reification did not exist
+	 * @throws AccessDeniedException.
+	 */
+	@Override
+	public SecuredResource getAnyReifiedStatement( final Statement s )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( resource, RDF.type, RDF.Bag )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredBag getBag( final Resource r ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( uri, RDF.type, RDF.Bag )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredBag getBag( final String uri ) throws AccessDeniedException;
+
+	@Override
+	public SecuredGraph getGraph();
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read on the returned statement.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement getProperty( final Resource s, final Property p )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Property getProperty( final String uri )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Property getProperty( final String nameSpace, final String localName )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read if the node exists
+	 * @sec.graph Update if the node does not exist
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public RDFNode getRDFNode( final Node n ) throws AccessDeniedException;
+
+	/**
+	 * .
+	 * If the PropertyNotFoundException was thrown by the enclosed securedModel
+	 * and the
+	 * user can not read SecTriple(s, p, SecNode.ANY) AccessDeniedExcepiton is
+	 * thrown,
+	 * otherwise the PropertyNotFoundException will be thrown.
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on the returned statement
+	 * @sec.triple Read on SecTriple(s, p, SecNode.ANY) if
+	 *            PropertyNotFoundException
+	 *            was thrown
+	 * @throws AccessDeniedException
+	 * @throws PropertyNotFoundException
+	 */
+	@Override
+	public SecuredStatement getRequiredProperty( final Resource s,
+			final Property p ) throws PropertyNotFoundException,
+			AccessDeniedException;
+
+	@Override
+	public SecuredResource getResource( final String uri );
+
+	@Override
+	@Deprecated
+	public SecuredResource getResource( final String uri, final ResourceF f );
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on SecTriple(resource, RDF.type, RDF.Seq)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredSeq getSeq( final Resource r ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on SecTriple(uri, RDF.type, RDF.Seq)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredSeq getSeq( final String uri ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all triples contributed to the new securedModel.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Model intersection( final Model model ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean isEmpty() throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read all compared triples. Triples that can not be read will
+	 *            not be compared.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean isIsomorphicWith( final Model g )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on s as triple
+	 * @sec.triple Read on at least one set reified statements.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean isReified( final Statement s ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all triples returned.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatementIterator listLiteralStatements(
+			final Resource subject, final Property predicate,
+			final boolean object ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all triples returned.
+	 * @throws AccessDeniedException
+	 */
+
+	@Override
+	public SecuredStatementIterator listLiteralStatements(
+			final Resource subject, final Property predicate, final char object )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all triples returned.
+	 * @throws AccessDeniedException
+	 */
+
+	@Override
+	public SecuredStatementIterator listLiteralStatements(
+			final Resource subject, final Property predicate,
+			final double object ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all triples returned.
+	 * @throws AccessDeniedException
+	 */
+
+	@Override
+	public SecuredStatementIterator listLiteralStatements(
+			final Resource subject, final Property predicate, final float object )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all triples returned.
+	 * @throws AccessDeniedException
+	 */
+
+	@Override
+	public SecuredStatementIterator listLiteralStatements(
+			final Resource subject, final Property predicate, final long object )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public NsIterator listNameSpaces() throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on each RDFNode returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredNodeIterator listObjects() throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on each RDFNode returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredNodeIterator listObjectsOfProperty( final Property p )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on each RDFNode returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredNodeIterator listObjectsOfProperty( final Resource s,
+			final Property p ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on each Reified statement returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredRSIterator listReifiedStatements()
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on each Reified statement returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredRSIterator listReifiedStatements( final Statement st )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned;
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResIterator listResourcesWithProperty( final Property p )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned;
+	 * @throws AccessDeniedException
+	 */
+
+	@Override
+	public SecuredResIterator listResourcesWithProperty( final Property p,
+			final boolean o ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned;
+	 * @throws AccessDeniedException
+	 */
+
+	@Override
+	public SecuredResIterator listResourcesWithProperty( final Property p,
+			final char o ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned;
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResIterator listResourcesWithProperty( final Property p,
+			final double o ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned;
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResIterator listResourcesWithProperty( final Property p,
+			final float o ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned;
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResIterator listResourcesWithProperty( final Property p,
+			final long o ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned;
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResIterator listResourcesWithProperty( final Property p,
+			final Object o ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResIterator listResourcesWithProperty( final Property p,
+			final RDFNode o ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all triples returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatementIterator listStatements()
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all triples returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatementIterator listStatements( final Resource s,
+			final Property p, final RDFNode o ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all triples returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatementIterator listStatements( final Resource subject,
+			final Property predicate, final String object )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all triples returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatementIterator listStatements( final Resource subject,
+			final Property predicate, final String object, final String lang )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all triples returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatementIterator listStatements( final Selector s )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResIterator listSubjects() throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResIterator listSubjectsWithProperty( final Property p )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResIterator listSubjectsWithProperty( final Property p,
+			final RDFNode o ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResIterator listSubjectsWithProperty( final Property p,
+			final String o ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read at least one SecTriple( resource, p, o ) for each
+	 *            resource
+	 *            returned
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResIterator listSubjectsWithProperty( final Property p,
+			final String o, final String l ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredPrefixMapping lock() throws AccessDeniedException;
+
+	@Override
+	public SecuredModel notifyEvent( final Object e );
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public String qnameFor( final String uri ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel query( final Selector s ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel read( final InputStream in, final String base )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel read( final InputStream in, final String base,
+			final String lang ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel read( final Reader reader, final String base )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel read( final Reader reader, final String base,
+			final String lang ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel read( final String url ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel read( final String url, final String lang )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel read( final String url, final String base,
+			final String lang ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * Listener will be filtered to only report events that the user can see.
+	 * 
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel register( final ModelChangedListener listener )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @sec.triple Delete on every statement in statments.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel remove( final List<Statement> statements )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @sec.triple Delete on every statement in baseModel.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel remove( final Model m ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @sec.triple Delete on every statement in baseModel.
+	 * @sec.triple Delete on every statement in reified statements if
+	 *            suppressReifications is false.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel remove( final Model m,
+			final boolean suppressReifications ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @sec.triple Delete on SecTriple( s, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel remove( final Resource s, final Property p,
+			final RDFNode o ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @sec.triple Delete on statment.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel remove( final Statement s )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @sec.triple Delete on every statement in statments.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel remove( final Statement[] statements )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @sec.triple Delete on every statement in iter.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel remove( final StmtIterator iter )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @sec.triple Delete on every statement in the securedModel
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel removeAll() throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @sec.triple Delete on every statement identified by SecTriple( s,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel removeAll( final Resource s, final Property p,
+			final RDFNode r ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @sec.triple Delete on every reification statement for each statement in
+	 *            statments.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public void removeAllReifications( final Statement s )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredPrefixMapping removeNsPrefix( final String prefix )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @sec.triple Delete on every reification statement fore each statement in
+	 *            rs.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public void removeReification( final ReifiedStatement rs )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public String setReaderClassName( final String lang, final String className )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public String setWriterClassName( final String lang, final String className )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public String shortForm( final String uri ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public long size() throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all statements contributed to the union.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Model union( final Model model ) throws AccessDeniedException;
+
+	@Override
+	public SecuredModel unregister( final ModelChangedListener listener );
+
+	@Override
+	public SecuredResource wrapAsResource( final Node n );
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all statements that are written.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel write( final OutputStream out )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all statements that are written.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel write( final OutputStream out, final String lang )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all statements that are written.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel write( final OutputStream out, final String lang,
+			final String base ) throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all statements that are written.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel write( final Writer writer )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all statements that are written.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel write( final Writer writer, final String lang )
+			throws AccessDeniedException;
+
+	/**
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read on all statements that are written.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredModel write( final Writer writer, final String lang,
+			final String base ) throws AccessDeniedException;
+
+}

Propchange: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredModel.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredProperty.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredProperty.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredProperty.java (added)
+++ jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredProperty.java Thu Aug  1 21:47:45 2013
@@ -0,0 +1,39 @@
+/*
+ * 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.security.model;
+
+import com.hp.hpl.jena.rdf.model.Property;
+
+import org.apache.jena.security.AccessDeniedException;
+
+/**
+ * The interface for secured Property instances.
+ * 
+ * Use the SecuredProperty.Factory to create instances
+ */
+public interface SecuredProperty extends SecuredResource, Property
+{
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public int getOrdinal() throws AccessDeniedException;
+
+}

Propchange: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredProperty.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredRDFList.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredRDFList.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredRDFList.java (added)
+++ jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredRDFList.java Thu Aug  1 21:47:45 2013
@@ -0,0 +1,419 @@
+/*
+ * 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.security.model;
+
+import com.hp.hpl.jena.rdf.model.EmptyListException;
+import com.hp.hpl.jena.rdf.model.InvalidListException;
+import com.hp.hpl.jena.rdf.model.ListIndexException;
+import com.hp.hpl.jena.rdf.model.RDFList;
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.util.iterator.ExtendedIterator;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.jena.security.AccessDeniedException;
+import org.apache.jena.security.SecurityEvaluator.Action;
+
+public interface SecuredRDFList extends RDFList, SecuredResource
+{
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple(SecNode.FUTURE, listFirst(), value)
+	 * @sec.triple Create SecTriple(SecNode.FUTURE, listFirst(), listNil())
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public void add( final RDFNode value ) throws AccessDeniedException;
+
+	/**
+	 * Resulting list will contain the readable nodes from this list
+	 * concatenated with nodes
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, value )
+	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.rest, this )
+	 */
+	@Override
+	public RDFList append( final Iterator<? extends RDFNode> nodes )
+			throws AccessDeniedException;
+
+	/**
+	 * Resulting list will contain the readable nodes from this list
+	 * concatenated
+	 * with the list argument
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, value )
+	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.rest, this )
+	 */
+	@Override
+	public RDFList append( final RDFList list ) throws AccessDeniedException;
+
+	/**
+	 * Uses the security settings for the application of the function calls.
+	 * Thus if the function reads data the Read must be allowed, etc.
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read (to be included in the calculation)
+	 * @sec.triple other permissions required by the function.
+	 * @throws AccessDeniedException
+	 *             graph Read or other permissions are not met
+	 */
+	@Override
+	public void apply( final ApplyFn fn ) throws AccessDeniedException;
+
+	/**
+	 * This method is intended to provide the capabilities to apply functions
+	 * that
+	 * need to do more than read the graph.
+	 * 
+	 * If the user does not have constraints access to the item in the list the
+	 * item
+	 * is not included in the function.
+	 * 
+	 * @param constraints
+	 *            The permissions the user must have on the items in the list.
+	 * @param fn
+	 *            The function to apply.
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read and constraints
+	 * @throws AccessDeniedException
+	 */
+	public void apply( Set<Action> constraints, final ApplyFn fn )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.triple Read for triples containing the returned RDFNodes.
+	 * @return List<SecuredRDFNode>
+	 */
+	@Override
+	public List<RDFNode> asJavaList();
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, node ) for each
+	 *            node in
+	 *            nodes.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public void concatenate( final Iterator<? extends RDFNode> nodes )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, node ) for each
+	 *            node in
+	 *            list.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public void concatenate( final RDFList list ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, value )
+	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.rest, this )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredRDFList cons( final RDFNode value )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read for triple containing value.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean contains( final RDFNode value ) throws AccessDeniedException;
+
+	/**
+	 * Creates a copy of this list comprising the readable elements of this
+	 * list.
+	 * @sec.graph Read to read the items to copy
+	 * @sec.triple Read on each triple to be read.
+	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, value )
+	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.rest, this )
+	 */
+	@Override
+	public SecuredRDFList copy();
+
+	/**
+	 * Answer the node that is the i'th element of the list, assuming that the
+	 * head is item zero. If the list is too
+	 * short to have an i'th element, throws a ListIndexException.
+	 * 
+	 * List may be shortened by security constraints.
+	 * 
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	public SecuredRDFNode get( final int i ) throws AccessDeniedException,
+			EmptyListException, ListIndexException, InvalidListException;
+
+	/**
+	 * The value that is at the head of the list.
+	 * 
+	 * head may be shifted by security constraints.
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read for triple containing value.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 */
+	@Override
+	public RDFNode getHead() throws AccessDeniedException, EmptyListException;
+
+	/**
+	 * The value that is at the tail of the list.
+	 * 
+	 * tail may be shifted by security constraints.
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read for triple containing value.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	public SecuredRDFList getTail() throws AccessDeniedException,
+			EmptyListException, ListIndexException, InvalidListException;
+
+	/**
+	 * @sec.graph Read
+	 */
+	@Override
+	public String getValidityErrorMessage() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read for triple containing value.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	public int indexOf( final RDFNode value ) throws AccessDeniedException,
+			EmptyListException, ListIndexException, InvalidListException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read for triple containing value.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	public int indexOf( final RDFNode value, final int start )
+			throws AccessDeniedException, EmptyListException,
+			ListIndexException, InvalidListException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean isEmpty() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean isValid() throws AccessDeniedException, EmptyListException,
+			ListIndexException, InvalidListException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read for triple containing value to be included in the result.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public ExtendedIterator<RDFNode> iterator() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read + requiredPerms for triple containing value to be
+	 *            included in the result.
+	 * @throws AccessDeniedException
+	 */
+	public ExtendedIterator<RDFNode> iterator( Set<Action> requiredPerms )
+			throws AccessDeniedException, EmptyListException,
+			ListIndexException, InvalidListException;
+
+	/**
+	 * Only readable triples will be passed to the function. If the function
+	 * does
+	 * any action other than read those permissions must also be granted.
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read for triple containing value.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	public Object reduce( final ReduceFn fn, final Object initial )
+			throws AccessDeniedException, EmptyListException,
+			ListIndexException, InvalidListException;
+
+	/**
+	 * Only readable triples will be passed to the function. In addition,
+	 * only triples that pass the requiredActions tests will be passed to the
+	 * function.
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read for triple containing value.
+	 * @param requiredActions
+	 *            The set of permission (in addition to Read) that the user must
+	 *            have
+	 * @param fn
+	 *            The reduction function
+	 * @param initial
+	 *            The initial state for the ruduce value.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	public Object reduce( Set<Action> requiredActions, final ReduceFn fn,
+			final Object initial ) throws AccessDeniedException,
+			EmptyListException, ListIndexException, InvalidListException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Delete for triple containing value.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	public RDFList remove( final RDFNode val ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Delete for all triples.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	@Deprecated
+	public void removeAll() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Delete for the head triple.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	public RDFList removeHead() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Delete for triple containing value.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	public void removeList() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Update for triplie i, and value.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	public SecuredRDFNode replace( final int i, final RDFNode value )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read for triples included in the comparison.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	public boolean sameListAs( final RDFList list )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create for triple containing value.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	public SecuredRDFNode setHead( final RDFNode value )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public void setStrict( final boolean strict ) throws AccessDeniedException;
+
+	/**
+	 * Size may be modified by security constraionts.
+	 * 
+	 * @sec.graph Read
+	 * @sec.triple Read for triples counted in the result.
+	 * @throws AccessDeniedException
+	 * @throws EmptyListException
+	 * @throws ListIndexException
+	 * @throws InvalidListException
+	 */
+	@Override
+	public int size() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create for triple containing value.
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredRDFList with( final RDFNode value )
+			throws AccessDeniedException;
+
+}

Propchange: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredRDFList.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredRDFNode.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredRDFNode.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredRDFNode.java (added)
+++ jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredRDFNode.java Thu Aug  1 21:47:45 2013
@@ -0,0 +1,60 @@
+/*
+ * 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.security.model;
+
+import com.hp.hpl.jena.graph.Node;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.RDFNode;
+
+import org.apache.jena.security.AccessDeniedException;
+import org.apache.jena.security.impl.SecuredItem;
+
+/**
+ * The interface for secured RDFNode instances.
+ * 
+ * Use one the SecuredRDFNode derived class Factories to create instances
+ */
+public interface SecuredRDFNode extends RDFNode, SecuredItem
+{
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Node asNode() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public <T extends RDFNode> boolean canAs( final Class<T> view )
+			throws AccessDeniedException;
+
+	@Override
+	public SecuredModel getModel();
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public RDFNode inModel( final Model m ) throws AccessDeniedException;
+
+}

Propchange: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredRDFNode.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredReifiedStatement.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredReifiedStatement.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredReifiedStatement.java (added)
+++ jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredReifiedStatement.java Thu Aug  1 21:47:45 2013
@@ -0,0 +1,39 @@
+/*
+ * 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.security.model;
+
+import com.hp.hpl.jena.rdf.model.ReifiedStatement;
+
+import org.apache.jena.security.AccessDeniedException;
+
+/**
+ * The interface for secured ReifiedStatement instances.
+ * 
+ * Use the SecuredReifiedStatement.Factory to create instances
+ */
+public interface SecuredReifiedStatement extends ReifiedStatement,
+		SecuredResource
+{
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement getStatement();
+
+}

Propchange: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredReifiedStatement.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredResource.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredResource.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredResource.java (added)
+++ jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredResource.java Thu Aug  1 21:47:45 2013
@@ -0,0 +1,338 @@
+/*
+ * 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.security.model;
+
+import com.hp.hpl.jena.datatypes.RDFDatatype;
+import com.hp.hpl.jena.rdf.model.AnonId;
+import com.hp.hpl.jena.rdf.model.Literal;
+import com.hp.hpl.jena.rdf.model.Property;
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.rdf.model.Resource;
+
+import org.apache.jena.security.AccessDeniedException;
+import org.apache.jena.security.model.impl.SecuredStatementIterator;
+
+/**
+ * The interface for secured Resource instances.
+ * 
+ * Use the SecuredResource.Factory to create instances
+ */
+public interface SecuredResource extends Resource, SecuredRDFNode
+{
+
+	@Override
+	public SecuredResource abort();
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create (this, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResource addLiteral( final Property p, final boolean o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create (this, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Resource addLiteral( final Property p, final char o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create (this, value, d )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Resource addLiteral( final Property value, final double d )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create (this, value, d )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Resource addLiteral( final Property value, final float d )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create (this, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Resource addLiteral( final Property p, final Literal o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create (this, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Resource addLiteral( final Property p, final long o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create (this, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Resource addLiteral( final Property p, final Object o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create (this, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Resource addProperty( final Property p, final RDFNode o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create (this, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Resource addProperty( final Property p, final String o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create (this, p, literal(lexicalForm,datatype) )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Resource addProperty( final Property p, final String lexicalForm,
+			final RDFDatatype datatype ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create (this, p, o )
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public Resource addProperty( final Property p, final String o,
+			final String l ) throws AccessDeniedException;
+
+	@Override
+	public SecuredResource asResource();
+
+	@Override
+	public SecuredResource begin();
+
+	@Override
+	public SecuredResource commit();
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean equals( final Object o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public AnonId getId() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public String getLocalName() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public String getNameSpace() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement getProperty( final Property p )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResource getPropertyResourceValue( final Property p )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatement getRequiredProperty( final Property p )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public String getURI() throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple(this,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean hasLiteral( final Property p, final boolean o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple(this,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean hasLiteral( final Property p, final char o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple(this,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean hasLiteral( final Property p, final double o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple(this,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean hasLiteral( final Property p, final float o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple(this,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean hasLiteral( final Property p, final long o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple(this,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean hasLiteral( final Property p, final Object o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple(this,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean hasProperty( final Property p ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple(this,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean hasProperty( final Property p, final RDFNode o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple(this,p,o)
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean hasProperty( final Property p, final String o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple(this,p,literal(o,l))
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean hasProperty( final Property p, final String o, final String l )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public boolean hasURI( final String uri ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read on returned Statements
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatementIterator listProperties()
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read on returned Statements
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredStatementIterator listProperties( final Property p )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Delete on associated Statements
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResource removeAll( final Property p )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Delete on all Statements
+	 * @throws AccessDeniedException
+	 */
+	@Override
+	public SecuredResource removeProperties() throws AccessDeniedException;
+}

Propchange: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredResource.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredSeq.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredSeq.java?rev=1509440&view=auto
==============================================================================
--- jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredSeq.java (added)
+++ jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredSeq.java Thu Aug  1 21:47:45 2013
@@ -0,0 +1,386 @@
+/*
+ * 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.security.model;
+
+import com.hp.hpl.jena.rdf.model.RDFNode;
+import com.hp.hpl.jena.rdf.model.ResourceF;
+import com.hp.hpl.jena.rdf.model.Seq;
+
+import org.apache.jena.security.AccessDeniedException;
+
+/**
+ * The interface for secured Seq instances.
+ * 
+ * Use the SecuredSeq.Factory to create instances
+ * 
+ * Sequence may have breaks in the order.
+ * http://www.w3.org/TR/2004/REC-rdf-mt-20040210/#Containers
+ * 
+ */
+public interface SecuredSeq extends Seq, SecuredContainer
+{
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredSeq add( final int index, final boolean o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredSeq add( final int index, final char o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredSeq add( final int index, final double o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredSeq add( final int index, final float o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredSeq add( final int index, final long o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredSeq add( final int index, final Object o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredSeq add( final int index, final RDFNode o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredSeq add( final int index, final String o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredSeq add( final int index, final String o, final String l )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredAlt getAlt( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredBag getBag( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public boolean getBoolean( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public byte getByte( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public char getChar( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public double getDouble( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public float getFloat( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public int getInt( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public String getLanguage( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredLiteral getLiteral( final int index )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public long getLong( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredRDFNode getObject( final int index )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredResource getResource( final int index )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	@Deprecated
+	public SecuredResource getResource( final int index, final ResourceF f )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public SecuredSeq getSeq( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public short getShort( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public String getString( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public int indexOf( final boolean o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public int indexOf( final char o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public int indexOf( final double o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public int indexOf( final float o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public int indexOf( final long o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public int indexOf( final Object o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public int indexOf( final RDFNode o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public int indexOf( final String o ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Read
+	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
+	 */
+	@Override
+	public int indexOf( final String o, final String l )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Delete SecTriple( this, RDF.li(1), o )
+	 * @sec.triple Update Triples after index
+	 */
+	@Override
+	public SecuredSeq remove( final int index ) throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
+	 *            RDF.li(index), o )
+	 */
+	@Override
+	public SecuredSeq set( final int index, final boolean o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
+	 *            RDF.li(index), o )
+	 */
+	@Override
+	public SecuredSeq set( final int index, final char o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
+	 *            RDF.li(index), o )
+	 */
+	@Override
+	public SecuredSeq set( final int index, final double o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
+	 *            RDF.li(index), o )
+	 */
+	@Override
+	public SecuredSeq set( final int index, final float o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
+	 *            RDF.li(index), o )
+	 */
+	@Override
+	public SecuredSeq set( final int index, final long o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
+	 *            RDF.li(index), o )
+	 */
+	@Override
+	public SecuredSeq set( final int index, final Object o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
+	 *            RDF.li(index), o )
+	 */
+	@Override
+	public SecuredSeq set( final int index, final RDFNode o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
+	 *            RDF.li(index), o )
+	 */
+	@Override
+	public SecuredSeq set( final int index, final String o )
+			throws AccessDeniedException;
+
+	/**
+	 * @sec.graph Update
+	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
+	 *            RDF.li(index), o )
+	 */
+	@Override
+	public SecuredSeq set( final int index, final String o, final String l )
+			throws AccessDeniedException;
+
+}

Propchange: jena/Experimental/jena-security/src/main/java/org/apache/jena/security/model/SecuredSeq.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain