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/08/07 20:56:19 UTC

[08/13] jena git commit: Added throw exception documentation

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredProperty.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredProperty.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredProperty.java
index 20e8951..f066ca4 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredProperty.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredProperty.java
@@ -17,7 +17,8 @@
  */
 package org.apache.jena.permissions.model;
 
-import org.apache.jena.rdf.model.Property ;
+import org.apache.jena.rdf.model.Property;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.ReadDeniedException;
 
 /**
@@ -25,14 +26,16 @@ import org.apache.jena.shared.ReadDeniedException;
  * 
  * Use the SecuredProperty.Factory to create instances
  */
-public interface SecuredProperty extends SecuredResource, Property
-{
+public interface SecuredProperty extends SecuredResource, Property {
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int getOrdinal() throws ReadDeniedException;
+	public int getOrdinal() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFList.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFList.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFList.java
index 07e2464..0f07a13 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFList.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFList.java
@@ -22,15 +22,15 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.jena.permissions.SecurityEvaluator.Action;
-import org.apache.jena.rdf.model.* ;
+import org.apache.jena.rdf.model.*;
 import org.apache.jena.shared.AddDeniedException;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.DeleteDeniedException;
 import org.apache.jena.shared.ReadDeniedException;
 import org.apache.jena.shared.UpdateDeniedException;
-import org.apache.jena.util.iterator.ExtendedIterator ;
+import org.apache.jena.util.iterator.ExtendedIterator;
 
-public interface SecuredRDFList extends RDFList, SecuredResource
-{
+public interface SecuredRDFList extends RDFList, SecuredResource {
 
 	/**
 	 * @sec.graph Update
@@ -38,35 +38,45 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @sec.triple Create SecTriple(SecNode.FUTURE, listFirst(), listNil())
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public void add( final RDFNode value ) throws UpdateDeniedException, AddDeniedException;
+	public void add(final RDFNode value) throws UpdateDeniedException,
+			AddDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * 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 )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public RDFList append( final Iterator<? extends RDFNode> nodes )
-			throws UpdateDeniedException, AddDeniedException;
+	public RDFList append(final Iterator<? extends RDFNode> nodes)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * Resulting list will contain the readable nodes from this list
-	 * concatenated
-	 * with the list argument
+	 * 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 )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public RDFList append( final RDFList list ) throws UpdateDeniedException, AddDeniedException;
+	public RDFList append(final RDFList list) throws UpdateDeniedException,
+			AddDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * Uses the security settings for the application of the function calls.
@@ -77,18 +87,19 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @sec.triple other permissions required by the function.
 	 * @throws ReadDeniedException
 	 *             graph Read or other permissions are not met
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public void apply( final ApplyFn fn ) throws ReadDeniedException;
+	public void apply(final ApplyFn fn) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * This method is intended to provide the capabilities to apply functions
-	 * that
-	 * need to do more than read the graph.
+	 * 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.
+	 * item is not included in the function.
 	 * 
 	 * @param constraints
 	 *            The permissions the user must have on the items in the list.
@@ -98,39 +109,47 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @sec.graph Read
 	 * @sec.triple Read and constraints
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
-	public void apply( Set<Action> constraints, final ApplyFn fn )
-			throws ReadDeniedException;
+	public void apply(Set<Action> constraints, final ApplyFn fn)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.triple Read for triples containing the returned RDFNodes.
 	 * @return List<SecuredRDFNode>
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public List<RDFNode> asJavaList();
+	public List<RDFNode> asJavaList() throws AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, node ) for each
-	 *            node in
-	 *            nodes.
+	 *             node in nodes.
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public void concatenate( final Iterator<? extends RDFNode> nodes )
-			throws UpdateDeniedException, AddDeniedException;
+	public void concatenate(final Iterator<? extends RDFNode> nodes)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, node ) for each
-	 *            node in
-	 *            list.
+	 *             node in list.
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public void concatenate( final RDFList list ) throws UpdateDeniedException, AddDeniedException;
+	public void concatenate(final RDFList list) throws UpdateDeniedException,
+			AddDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
@@ -138,36 +157,46 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.rest, this )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredRDFList cons( final RDFNode value )
-			throws UpdateDeniedException, AddDeniedException;
+	public SecuredRDFList cons(final RDFNode value)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read for triple containing value.
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean contains( final RDFNode value ) throws ReadDeniedException;
+	public boolean contains(final RDFNode value) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * 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 )
 	 * @throws ReadDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredRDFList copy() throws ReadDeniedException, AddDeniedException;
+	public SecuredRDFList copy() throws ReadDeniedException,
+			AddDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * 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.
+	 * 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.
 	 * 
@@ -176,10 +205,13 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredRDFNode get( final int i ) throws ReadDeniedException,
-			EmptyListException, ListIndexException, InvalidListException;
+	public SecuredRDFNode get(final int i) throws ReadDeniedException,
+			EmptyListException, ListIndexException, InvalidListException,
+			AuthenticationRequiredException;
 
 	/**
 	 * The value that is at the head of the list.
@@ -190,9 +222,12 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @sec.triple Read for triple containing value.
 	 * @throws ReadDeniedException
 	 * @throws EmptyListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public RDFNode getHead() throws ReadDeniedException, EmptyListException;
+	public RDFNode getHead() throws ReadDeniedException, EmptyListException,
+			AuthenticationRequiredException;
 
 	/**
 	 * The value that is at the tail of the list.
@@ -205,17 +240,23 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
 	public SecuredRDFList getTail() throws ReadDeniedException,
-			EmptyListException, ListIndexException, InvalidListException;
+			EmptyListException, ListIndexException, InvalidListException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public String getValidityErrorMessage() throws ReadDeniedException;
+	public String getValidityErrorMessage() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
@@ -224,10 +265,13 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int indexOf( final RDFNode value ) throws ReadDeniedException,
-			EmptyListException, ListIndexException, InvalidListException;
+	public int indexOf(final RDFNode value) throws ReadDeniedException,
+			EmptyListException, ListIndexException, InvalidListException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
@@ -236,49 +280,62 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int indexOf( final RDFNode value, final int start )
-			throws ReadDeniedException, EmptyListException,
-			ListIndexException, InvalidListException;
+	public int indexOf(final RDFNode value, final int start)
+			throws ReadDeniedException, EmptyListException, ListIndexException,
+			InvalidListException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean isEmpty() throws ReadDeniedException;
+	public boolean isEmpty() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
 	public boolean isValid() throws ReadDeniedException, EmptyListException,
-			ListIndexException, InvalidListException;
+			ListIndexException, InvalidListException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
-	 * @sec.triple Read for triple containing value to be included in the result.
+	 * @sec.triple Read for triple containing value to be included in the
+	 *             result.
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public ExtendedIterator<RDFNode> iterator() throws ReadDeniedException;
+	public ExtendedIterator<RDFNode> iterator() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read + requiredPerms for triple containing value to be
-	 *            included in the result.
+	 *             included in the result.
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
-	public ExtendedIterator<RDFNode> iterator( Set<Action> requiredPerms )
-			throws ReadDeniedException, EmptyListException,
-			ListIndexException, InvalidListException;
+	public ExtendedIterator<RDFNode> iterator(Set<Action> requiredPerms)
+			throws ReadDeniedException, EmptyListException, ListIndexException,
+			InvalidListException, AuthenticationRequiredException;
 
 	/**
 	 * Only readable triples will be passed to the function. If the function
-	 * does
-	 * any action other than read those permissions must also be granted.
+	 * does any action other than read those permissions must also be granted.
 	 * 
 	 * @sec.graph Read
 	 * @sec.triple Read for triple containing value.
@@ -286,15 +343,17 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public Object reduce( final ReduceFn fn, final Object initial )
-			throws ReadDeniedException, EmptyListException,
-			ListIndexException, InvalidListException;
+	public Object reduce(final ReduceFn fn, final Object initial)
+			throws ReadDeniedException, EmptyListException, ListIndexException,
+			InvalidListException, AuthenticationRequiredException;
 
 	/**
-	 * Only readable triples will be passed to the function. In addition,
-	 * only triples that pass the requiredActions tests will be passed to the
+	 * 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
@@ -310,10 +369,13 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
-	public Object reduce( Set<Action> requiredActions, final ReduceFn fn,
-			final Object initial ) throws ReadDeniedException,
-			EmptyListException, ListIndexException, InvalidListException;
+	public Object reduce(Set<Action> requiredActions, final ReduceFn fn,
+			final Object initial) throws ReadDeniedException,
+			EmptyListException, ListIndexException, InvalidListException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
@@ -323,9 +385,12 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public RDFList remove( final RDFNode val ) throws UpdateDeniedException, DeleteDeniedException;
+	public RDFList remove(final RDFNode val) throws UpdateDeniedException,
+			DeleteDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
@@ -335,10 +400,13 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
 	@Deprecated
-	public void removeAll() throws UpdateDeniedException, DeleteDeniedException;
+	public void removeAll() throws UpdateDeniedException,
+			DeleteDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
@@ -348,9 +416,12 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public RDFList removeHead() throws UpdateDeniedException, DeleteDeniedException;
+	public RDFList removeHead() throws UpdateDeniedException,
+			DeleteDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
@@ -360,9 +431,12 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public void removeList() throws UpdateDeniedException, DeleteDeniedException;
+	public void removeList() throws UpdateDeniedException,
+			DeleteDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
@@ -371,10 +445,12 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredRDFNode replace( final int i, final RDFNode value )
-			throws UpdateDeniedException;
+	public SecuredRDFNode replace(final int i, final RDFNode value)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
@@ -383,10 +459,12 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean sameListAs( final RDFList list )
-			throws ReadDeniedException;
+	public boolean sameListAs(final RDFList list) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
@@ -396,17 +474,23 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredRDFNode setHead( final RDFNode value )
-			throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredRDFNode setHead(final RDFNode value)
+			throws UpdateDeniedException, DeleteDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public void setStrict( final boolean strict ) throws UpdateDeniedException;
+	public void setStrict(final boolean strict) throws UpdateDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * Size may be modified by security constraionts.
@@ -417,18 +501,24 @@ public interface SecuredRDFList extends RDFList, SecuredResource
 	 * @throws EmptyListException
 	 * @throws ListIndexException
 	 * @throws InvalidListException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int size() throws ReadDeniedException;
+	public int size() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create for triple containing value.
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredRDFList with( final RDFNode value )
-			throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredRDFList with(final RDFNode value)
+			throws UpdateDeniedException, DeleteDeniedException,
+			AuthenticationRequiredException;
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/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 c67cdb4..d650ec0 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
@@ -17,10 +17,11 @@
  */
 package org.apache.jena.permissions.model;
 
-import org.apache.jena.graph.Node ;
+import org.apache.jena.graph.Node;
 import org.apache.jena.permissions.SecuredItem;
-import org.apache.jena.rdf.model.Model ;
-import org.apache.jena.rdf.model.RDFNode ;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.ReadDeniedException;
 
 /**
@@ -28,23 +29,27 @@ import org.apache.jena.shared.ReadDeniedException;
  * 
  * Use one the SecuredRDFNode derived class Factories to create instances
  */
-public interface SecuredRDFNode extends RDFNode, SecuredItem
-{
+public interface SecuredRDFNode extends RDFNode, SecuredItem {
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public Node asNode() throws ReadDeniedException;
+	public Node asNode() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public <T extends RDFNode> boolean canAs( final Class<T> view )
-			throws ReadDeniedException;
+	public <T extends RDFNode> boolean canAs(final Class<T> view)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	@Override
 	public SecuredModel getModel();
@@ -52,8 +57,11 @@ public interface SecuredRDFNode extends RDFNode, SecuredItem
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public RDFNode inModel( final Model m ) throws ReadDeniedException;
+	public RDFNode inModel(final Model m) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredReifiedStatement.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredReifiedStatement.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredReifiedStatement.java
index 5661ec9..ada6886 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredReifiedStatement.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredReifiedStatement.java
@@ -17,8 +17,8 @@
  */
 package org.apache.jena.permissions.model;
 
-
-import org.apache.jena.rdf.model.ReifiedStatement ;
+import org.apache.jena.rdf.model.ReifiedStatement;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.ReadDeniedException;
 
 /**
@@ -27,13 +27,15 @@ import org.apache.jena.shared.ReadDeniedException;
  * Use the SecuredReifiedStatement.Factory to create instances
  */
 public interface SecuredReifiedStatement extends ReifiedStatement,
-		SecuredResource
-{
+		SecuredResource {
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement getStatement() throws ReadDeniedException;
+	public SecuredStatement getStatement() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredResource.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredResource.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredResource.java
index c549685..361cf18 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredResource.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredResource.java
@@ -17,10 +17,11 @@
  */
 package org.apache.jena.permissions.model;
 
-import org.apache.jena.datatypes.RDFDatatype ;
+import org.apache.jena.datatypes.RDFDatatype;
 import org.apache.jena.permissions.model.impl.SecuredStatementIterator;
-import org.apache.jena.rdf.model.* ;
+import org.apache.jena.rdf.model.*;
 import org.apache.jena.shared.AddDeniedException;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.DeleteDeniedException;
 import org.apache.jena.shared.ReadDeniedException;
 import org.apache.jena.shared.UpdateDeniedException;
@@ -30,8 +31,7 @@ import org.apache.jena.shared.UpdateDeniedException;
  * 
  * Use the SecuredResource.Factory to create instances
  */
-public interface SecuredResource extends Resource, SecuredRDFNode
-{
+public interface SecuredResource extends Resource, SecuredRDFNode {
 
 	@Override
 	public SecuredResource abort();
@@ -41,110 +41,143 @@ public interface SecuredResource extends Resource, SecuredRDFNode
 	 * @sec.triple Create (this, p, o )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredResource addLiteral( final Property p, final boolean o )
-			throws UpdateDeniedException, AddDeniedException;
+	public SecuredResource addLiteral(final Property p, final boolean o)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create (this, p, o )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public Resource addLiteral( final Property p, final char o )
-			throws UpdateDeniedException, AddDeniedException;
+	public Resource addLiteral(final Property p, final char o)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create (this, value, d )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public Resource addLiteral( final Property value, final double d )
-			throws UpdateDeniedException, AddDeniedException;
+	public Resource addLiteral(final Property value, final double d)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create (this, value, d )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public Resource addLiteral( final Property value, final float d )
-			throws UpdateDeniedException, AddDeniedException;
+	public Resource addLiteral(final Property value, final float d)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create (this, p, o )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public Resource addLiteral( final Property p, final Literal o )
-			throws UpdateDeniedException, AddDeniedException;
+	public Resource addLiteral(final Property p, final Literal o)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create (this, p, o )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public Resource addLiteral( final Property p, final long o )
-			throws UpdateDeniedException, AddDeniedException;
+	public Resource addLiteral(final Property p, final long o)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create (this, p, o )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public Resource addLiteral( final Property p, final Object o )
-			throws UpdateDeniedException, AddDeniedException;
+	public Resource addLiteral(final Property p, final Object o)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create (this, p, o )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public Resource addProperty( final Property p, final RDFNode o )
-			throws UpdateDeniedException, AddDeniedException;
+	public Resource addProperty(final Property p, final RDFNode o)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create (this, p, o )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public Resource addProperty( final Property p, final String o )
-			throws UpdateDeniedException, AddDeniedException;
+	public Resource addProperty(final Property p, final String o)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create (this, p, literal(lexicalForm,datatype) )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public Resource addProperty( final Property p, final String lexicalForm,
-			final RDFDatatype datatype ) throws UpdateDeniedException, AddDeniedException;
+	public Resource addProperty(final Property p, final String lexicalForm,
+			final RDFDatatype datatype) throws UpdateDeniedException,
+			AddDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create (this, p, o )
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public Resource addProperty( final Property p, final String o,
-			final String l ) throws UpdateDeniedException, AddDeniedException;
+	public Resource addProperty(final Property p, final String o, final String l)
+			throws UpdateDeniedException, AddDeniedException,
+			AuthenticationRequiredException;
 
 	@Override
 	public SecuredResource asResource();
@@ -158,192 +191,247 @@ public interface SecuredResource extends Resource, SecuredRDFNode
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean equals( final Object o ) throws ReadDeniedException;
+	public boolean equals(final Object o) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public AnonId getId() throws ReadDeniedException;
+	public AnonId getId() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public String getLocalName() throws ReadDeniedException;
+	public String getLocalName() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public String getNameSpace() throws ReadDeniedException;
+	public String getNameSpace() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement getProperty( final Property p )
-			throws ReadDeniedException;
+	public SecuredStatement getProperty(final Property p)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredResource getPropertyResourceValue( final Property p )
-			throws ReadDeniedException;
+	public SecuredResource getPropertyResourceValue(final Property p)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement getRequiredProperty( final Property p )
-			throws ReadDeniedException;
+	public SecuredStatement getRequiredProperty(final Property p)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public String getURI() throws ReadDeniedException;
+	public String getURI() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple(this,p,o)
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean hasLiteral( final Property p, final boolean o )
-			throws ReadDeniedException;
+	public boolean hasLiteral(final Property p, final boolean o)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple(this,p,o)
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean hasLiteral( final Property p, final char o )
-			throws ReadDeniedException;
+	public boolean hasLiteral(final Property p, final char o)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple(this,p,o)
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean hasLiteral( final Property p, final double o )
-			throws ReadDeniedException;
+	public boolean hasLiteral(final Property p, final double o)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple(this,p,o)
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean hasLiteral( final Property p, final float o )
-			throws ReadDeniedException;
+	public boolean hasLiteral(final Property p, final float o)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple(this,p,o)
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean hasLiteral( final Property p, final long o )
-			throws ReadDeniedException;
+	public boolean hasLiteral(final Property p, final long o)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple(this,p,o)
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean hasLiteral( final Property p, final Object o )
-			throws ReadDeniedException;
+	public boolean hasLiteral(final Property p, final Object o)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple(this,p,o)
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean hasProperty( final Property p ) throws ReadDeniedException;
+	public boolean hasProperty(final Property p) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple(this,p,o)
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean hasProperty( final Property p, final RDFNode o )
-			throws ReadDeniedException;
+	public boolean hasProperty(final Property p, final RDFNode o)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple(this,p,o)
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean hasProperty( final Property p, final String o )
-			throws ReadDeniedException;
+	public boolean hasProperty(final Property p, final String o)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple(this,p,literal(o,l))
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean hasProperty( final Property p, final String o, final String l )
-			throws ReadDeniedException;
+	public boolean hasProperty(final Property p, final String o, final String l)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean hasURI( final String uri ) throws ReadDeniedException;
+	public boolean hasURI(final String uri) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read on returned Statements
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
 	public SecuredStatementIterator listProperties()
-			throws ReadDeniedException;
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read on returned Statements
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatementIterator listProperties( final Property p )
-			throws ReadDeniedException;
+	public SecuredStatementIterator listProperties(final Property p)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Delete on associated Statements
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredResource removeAll( final Property p )
-			throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredResource removeAll(final Property p)
+			throws UpdateDeniedException, DeleteDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Delete on all Statements
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredResource removeProperties() throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredResource removeProperties() throws UpdateDeniedException,
+			DeleteDeniedException, AuthenticationRequiredException;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredSeq.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredSeq.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredSeq.java
index 62dd772..e72084b 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredSeq.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredSeq.java
@@ -17,10 +17,10 @@
  */
 package org.apache.jena.permissions.model;
 
-
-import org.apache.jena.rdf.model.RDFNode ;
-import org.apache.jena.rdf.model.ResourceF ;
-import org.apache.jena.rdf.model.Seq ;
+import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.rdf.model.ResourceF;
+import org.apache.jena.rdf.model.Seq;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.DeleteDeniedException;
 import org.apache.jena.shared.ReadDeniedException;
 import org.apache.jena.shared.UpdateDeniedException;
@@ -35,311 +35,410 @@ import org.apache.jena.shared.UpdateDeniedException;
  * 
  */
 @SuppressWarnings("deprecation")
-public interface SecuredSeq extends Seq, SecuredContainer
-{
-	/**	 * 
+public interface SecuredSeq extends Seq, SecuredContainer {
+	/**
 	 * @sec.graph Update
 	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq add( final int index, final boolean o )
-			throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredSeq add(final int index, final boolean o)
+			throws UpdateDeniedException, DeleteDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq add( final int index, final char o )
-			throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredSeq add(final int index, final char o)
+			throws UpdateDeniedException, DeleteDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq add( final int index, final double o )
-			throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredSeq add(final int index, final double o)
+			throws UpdateDeniedException, DeleteDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq add( final int index, final float o )
-			throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredSeq add(final int index, final float o)
+			throws UpdateDeniedException, DeleteDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq add( final int index, final long o )
-			throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredSeq add(final int index, final long o)
+			throws UpdateDeniedException, DeleteDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq add( final int index, final Object o )
-			throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredSeq add(final int index, final Object o)
+			throws UpdateDeniedException, DeleteDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq add( final int index, final RDFNode o )
-			throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredSeq add(final int index, final RDFNode o)
+			throws UpdateDeniedException, DeleteDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq add( final int index, final String o )
-			throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredSeq add(final int index, final String o)
+			throws UpdateDeniedException, DeleteDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Create SecTriple( this, RDF.li(1), o )
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq add( final int index, final String o, final String l )
-			throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredSeq add(final int index, final String o, final String l)
+			throws UpdateDeniedException, DeleteDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredAlt getAlt( final int index ) throws ReadDeniedException;
+	public SecuredAlt getAlt(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredBag getBag( final int index ) throws ReadDeniedException;
+	public SecuredBag getBag(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean getBoolean( final int index ) throws ReadDeniedException;
+	public boolean getBoolean(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public byte getByte( final int index ) throws ReadDeniedException;
+	public byte getByte(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public char getChar( final int index ) throws ReadDeniedException;
+	public char getChar(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public double getDouble( final int index ) throws ReadDeniedException;
+	public double getDouble(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public float getFloat( final int index ) throws ReadDeniedException;
+	public float getFloat(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int getInt( final int index ) throws ReadDeniedException;
+	public int getInt(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public String getLanguage( final int index ) throws ReadDeniedException;
+	public String getLanguage(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredLiteral getLiteral( final int index )
-			throws ReadDeniedException;
+	public SecuredLiteral getLiteral(final int index)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public long getLong( final int index ) throws ReadDeniedException;
+	public long getLong(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredRDFNode getObject( final int index )
-			throws ReadDeniedException;
+	public SecuredRDFNode getObject(final int index)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredResource getResource( final int index )
-			throws ReadDeniedException;
+	public SecuredResource getResource(final int index)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
 	@Deprecated
-	public SecuredResource getResource( final int index, final ResourceF f )
-			throws ReadDeniedException;
+	public SecuredResource getResource(final int index, final ResourceF f)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq getSeq( final int index ) throws ReadDeniedException;
+	public SecuredSeq getSeq(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public short getShort( final int index ) throws ReadDeniedException;
+	public short getShort(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public String getString( final int index ) throws ReadDeniedException;
+	public String getString(final int index) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int indexOf( final boolean o ) throws ReadDeniedException;
+	public int indexOf(final boolean o) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int indexOf( final char o ) throws ReadDeniedException;
+	public int indexOf(final char o) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int indexOf( final double o ) throws ReadDeniedException;
+	public int indexOf(final double o) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int indexOf( final float o ) throws ReadDeniedException;
+	public int indexOf(final float o) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int indexOf( final long o ) throws ReadDeniedException;
+	public int indexOf(final long o) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int indexOf( final Object o ) throws ReadDeniedException;
+	public int indexOf(final Object o) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int indexOf( final RDFNode o ) throws ReadDeniedException;
+	public int indexOf(final RDFNode o) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int indexOf( final String o ) throws ReadDeniedException;
+	public int indexOf(final String o) throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read SecTriple( this, RDF.li(1), o )
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int indexOf( final String o, final String l )
-			throws ReadDeniedException;
+	public int indexOf(final String o, final String l)
+			throws ReadDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
@@ -347,98 +446,119 @@ public interface SecuredSeq extends Seq, SecuredContainer
 	 * @sec.triple Update Triples after index
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq remove( final int index ) throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredSeq remove(final int index) throws UpdateDeniedException,
+			DeleteDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
-	 *            RDF.li(index), o )
+	 *             RDF.li(index), o )
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq set( final int index, final boolean o )
-			throws UpdateDeniedException;
+	public SecuredSeq set(final int index, final boolean o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
-	 *            RDF.li(index), o )
+	 *             RDF.li(index), o )
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq set( final int index, final char o )
-			throws UpdateDeniedException;
+	public SecuredSeq set(final int index, final char o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
-	 *            RDF.li(index), o )
+	 *             RDF.li(index), o )
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq set( final int index, final double o )
-			throws UpdateDeniedException;
+	public SecuredSeq set(final int index, final double o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
-	 *            RDF.li(index), o )
+	 *             RDF.li(index), o )
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq set( final int index, final float o )
-			throws UpdateDeniedException;
+	public SecuredSeq set(final int index, final float o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
-	 *            RDF.li(index), o )
+	 *             RDF.li(index), o )
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq set( final int index, final long o )
-			throws UpdateDeniedException;
+	public SecuredSeq set(final int index, final long o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
-	 *            RDF.li(index), o )
+	 *             RDF.li(index), o )
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq set( final int index, final Object o )
-			throws UpdateDeniedException;
+	public SecuredSeq set(final int index, final Object o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
-	 *            RDF.li(index), o )
+	 *             RDF.li(index), o )
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq set( final int index, final RDFNode o )
-			throws UpdateDeniedException;
+	public SecuredSeq set(final int index, final RDFNode o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
-	 *            RDF.li(index), o )
+	 *             RDF.li(index), o )
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq set( final int index, final String o )
-			throws UpdateDeniedException;
+	public SecuredSeq set(final int index, final String o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( this,
-	 *            RDF.li(index), o )
+	 *             RDF.li(index), o )
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredSeq set( final int index, final String o, final String l )
-			throws UpdateDeniedException;
+	public SecuredSeq set(final int index, final String o, final String l)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/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 8c83f1c..b6efe03 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
@@ -17,10 +17,10 @@
  */
 package org.apache.jena.permissions.model;
 
-
 import org.apache.jena.permissions.SecuredItem;
-import org.apache.jena.rdf.model.* ;
+import org.apache.jena.rdf.model.*;
 import org.apache.jena.shared.AddDeniedException;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.DeleteDeniedException;
 import org.apache.jena.shared.ReadDeniedException;
 import org.apache.jena.shared.UpdateDeniedException;
@@ -30,106 +30,127 @@ import org.apache.jena.shared.UpdateDeniedException;
  * 
  * Use the SecuredStatement.Factory to create instances
  */
-public interface SecuredStatement extends Statement, SecuredItem
-{
+public interface SecuredStatement extends Statement, SecuredItem {
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement changeLiteralObject( boolean o )
-			throws UpdateDeniedException;
+	public SecuredStatement changeLiteralObject(boolean o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement changeLiteralObject( char o )
-			throws UpdateDeniedException;
+	public SecuredStatement changeLiteralObject(char o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement changeLiteralObject( double o )
-			throws UpdateDeniedException;
+	public SecuredStatement changeLiteralObject(double o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement changeLiteralObject( float o )
-			throws UpdateDeniedException;
+	public SecuredStatement changeLiteralObject(float o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement changeLiteralObject( int o )
-			throws UpdateDeniedException;
+	public SecuredStatement changeLiteralObject(int o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement changeLiteralObject( long o )
-			throws UpdateDeniedException;
+	public SecuredStatement changeLiteralObject(long o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement changeObject( RDFNode o )
-			throws UpdateDeniedException;
+	public SecuredStatement changeObject(RDFNode o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement changeObject( String o )
-			throws UpdateDeniedException;
+	public SecuredStatement changeObject(String o)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement changeObject( String o, boolean wellFormed )
-			throws UpdateDeniedException;
+	public SecuredStatement changeObject(String o, boolean wellFormed)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement changeObject( String o, String l )
-			throws UpdateDeniedException;
+	public SecuredStatement changeObject(String o, String l)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Update
 	 * @throws UpdateDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement changeObject( String o, String l, boolean wellFormed )
-			throws UpdateDeniedException;
+	public SecuredStatement changeObject(String o, String l, boolean wellFormed)
+			throws UpdateDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read, Update
@@ -137,10 +158,13 @@ public interface SecuredStatement extends Statement, SecuredItem
 	 * @throws ReadDeniedException
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
 	public SecuredReifiedStatement createReifiedStatement()
-			throws ReadDeniedException, UpdateDeniedException, AddDeniedException;
+			throws ReadDeniedException, UpdateDeniedException,
+			AddDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read, Update
@@ -148,10 +172,13 @@ public interface SecuredStatement extends Statement, SecuredItem
 	 * @throws ReadDeniedException
 	 * @throws UpdateDeniedException
 	 * @throws AddDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredReifiedStatement createReifiedStatement( String uri )
-			throws ReadDeniedException, UpdateDeniedException, AddDeniedException;
+	public SecuredReifiedStatement createReifiedStatement(String uri)
+			throws ReadDeniedException, UpdateDeniedException,
+			AddDeniedException, AuthenticationRequiredException;
 
 	@Override
 	public SecuredAlt getAlt();
@@ -162,51 +189,72 @@ public interface SecuredStatement extends Statement, SecuredItem
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean getBoolean() throws ReadDeniedException;
+	public boolean getBoolean() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public byte getByte() throws ReadDeniedException;
+	public byte getByte() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public char getChar() throws ReadDeniedException;
+	public char getChar() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public double getDouble() throws ReadDeniedException;
+	public double getDouble() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public float getFloat() throws ReadDeniedException;
+	public float getFloat() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public int getInt() throws ReadDeniedException;
+	public int getInt() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public String getLanguage() throws ReadDeniedException;
+	public String getLanguage() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	@Override
 	public SecuredLiteral getLiteral();
@@ -214,9 +262,12 @@ public interface SecuredStatement extends Statement, SecuredItem
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public long getLong() throws ReadDeniedException;
+	public long getLong() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	@Override
 	public SecuredModel getModel();
@@ -228,14 +279,14 @@ public interface SecuredStatement extends Statement, SecuredItem
 	public SecuredProperty getPredicate();
 
 	@Override
-	public SecuredStatement getProperty( Property p );
+	public SecuredStatement getProperty(Property p);
 
 	@Override
 	public SecuredResource getResource();
 
 	@Override
 	@Deprecated
-	public SecuredResource getResource( ResourceF f );
+	public SecuredResource getResource(ResourceF f);
 
 	@Override
 	public SecuredSeq getSeq();
@@ -243,19 +294,25 @@ public interface SecuredStatement extends Statement, SecuredItem
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public short getShort() throws ReadDeniedException;
+	public short getShort() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	@Override
-	public SecuredStatement getStatementProperty( Property p );
+	public SecuredStatement getStatementProperty(Property p);
 
 	/**
 	 * @sec.graph Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public String getString() throws ReadDeniedException;
+	public String getString() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	@Override
 	public SecuredResource getSubject();
@@ -264,42 +321,57 @@ public interface SecuredStatement extends Statement, SecuredItem
 	 * @sec.graph Read
 	 * @sec.triple Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean hasWellFormedXML() throws ReadDeniedException;
+	public boolean hasWellFormedXML() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public boolean isReified() throws ReadDeniedException;
+	public boolean isReified() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Read
 	 * @sec.triple Read
 	 * @throws ReadDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public RSIterator listReifiedStatements() throws ReadDeniedException;
+	public RSIterator listReifiedStatements() throws ReadDeniedException,
+			AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Delete
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public SecuredStatement remove() throws UpdateDeniedException, DeleteDeniedException;
+	public SecuredStatement remove() throws UpdateDeniedException,
+			DeleteDeniedException, AuthenticationRequiredException;
 
 	/**
 	 * @sec.graph Update
 	 * @sec.triple Delete
 	 * @throws UpdateDeniedException
 	 * @throws DeleteDeniedException
+	 * @throws AuthenticationRequiredException
+	 *             if user is not authenticated and is required to be.
 	 */
 	@Override
-	public void removeReification() throws UpdateDeniedException, DeleteDeniedException;
+	public void removeReification() throws UpdateDeniedException,
+			DeleteDeniedException, AuthenticationRequiredException;
 
 }