You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2016/10/06 13:54:35 UTC

[1/2] jena git commit: JENA-1238: Add (get|list)Property(, language) operations

Repository: jena
Updated Branches:
  refs/heads/master 158b64dd0 -> 95235b861


JENA-1238: Add (get|list)Property(,language) operations


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/95235b86
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/95235b86
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/95235b86

Branch: refs/heads/master
Commit: 95235b861b39e45ab013440708c3cec3ece854c2
Parents: 9e21ac3
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Oct 6 14:54:26 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Oct 6 14:54:26 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/jena/rdf/model/Model.java   | 23 ++++++++-
 .../org/apache/jena/rdf/model/Resource.java     | 14 +++++-
 .../apache/jena/rdf/model/impl/ModelCom.java    | 29 ++++++++----
 .../jena/rdf/model/impl/ResourceImpl.java       |  8 +++-
 .../model/impl/SecuredModelImpl.java            | 49 ++++++++++++++++---
 .../model/impl/SecuredResourceImpl.java         | 50 ++++++++++++++++++--
 6 files changed, 151 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/95235b86/jena-core/src/main/java/org/apache/jena/rdf/model/Model.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/Model.java b/jena-core/src/main/java/org/apache/jena/rdf/model/Model.java
index c3ca922..27a36ea 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/Model.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/Model.java
@@ -605,6 +605,18 @@ public interface Model
 	 */
 	Statement getRequiredProperty(Resource s, Property p) ;
 
+    /** Return a statement with given subject and property.
+     *  <p>If more than one statement witht the given subject and property
+     *  exists in the model, it is undefined which will be returned. If none
+     * exist, an exception is thrown.
+     * @return A statement from the model with the given subject and property.
+     * @param s The subject of the statement to be returned.
+     * @param p The property of the statement to be returned.
+     * @param lang The language
+     * @throws PropertyNotFoundException
+     */
+    Statement getRequiredProperty(Resource s, Property p, String lang) ;
+
     /**
         Answer a statement (s, p, ?O) from this model. If none exist, return null;
         if several exist, pick one arbitrarily.
@@ -614,6 +626,16 @@ public interface Model
     */
     Statement getProperty( Resource s, Property p );
 
+    /**
+    Answer a statement (s, p, ?O) from this model. If none exist, return null;
+    if several exist, pick one arbitrarily.
+    @param s the subject of the statement to return
+    @param p the predicate of the statement to return
+    @param lang language of the object
+    @return some statement (s, p, ?O@lang) or null if none can be found
+*/
+    Statement getProperty(Resource s, Property p, String lang) ;
+    
 	/** 
 	    An alias for <code>listResourcesWithProperty(Property)</code>,
 	    retained for backward compatability. It may be deprecated in later
@@ -1029,5 +1051,4 @@ public interface Model
         Answer true iff .close() has been called on this Model.
     */
     public boolean isClosed();
-
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/95235b86/jena-core/src/main/java/org/apache/jena/rdf/model/Resource.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/Resource.java b/jena-core/src/main/java/org/apache/jena/rdf/model/Resource.java
index f03ed94..b1f66cb 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/Resource.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/Resource.java
@@ -136,7 +136,7 @@ public interface Resource extends RDFNode {
     * be returned.  If no such statements are found, an exception is thrown.</p>
     * @param p The property sought.
     * @param lang The language of the statement with the property sought.
-    * @return some (this, p@lang, ?O) statement if one exists
+    * @return some (this, p, ?O@lang) statement if one exists
     * @throws PropertyNotFoundException if no such statement found
     */
     public Statement getRequiredProperty( Property p, String lang );
@@ -156,7 +156,7 @@ public interface Resource extends RDFNode {
      * from getRequiredProperty.
      * @param p The property sought.
      * @param lang The language of the property sought.
-     * @return some (this, p@lang, ?O) statement if one exists
+     * @return some (this, p, ?O@lang) statement if one exists
      */
     public Statement getProperty( Property p, String lang );
 
@@ -168,6 +168,16 @@ public interface Resource extends RDFNode {
      * @return An iterator over the statements.
      */
     public StmtIterator listProperties( Property p );
+    
+    /** Return an iterator over all the properties of this resource with a specific langauge.
+    *
+    * <p>The model associated with this resource is searched and an iterator is
+    * returned which iterates over all the statements which have this resource
+    * as a subject.</p>
+    * @return An iterator over all the statements about this object.
+    */
+    public StmtIterator listProperties( Property p, String lang );
+
 
     /** Return an iterator over all the properties of this resource.
      *

http://git-wip-us.apache.org/repos/asf/jena/blob/95235b86/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java
index 2303321..0efb3b0 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java
@@ -1235,24 +1235,37 @@ implements Model, PrefixMapping, Lock
     { return graph.contains( asNode( s ), asNode( p ), asNode( o ) ); }
 
     @Override
-    public Statement getRequiredProperty( Resource s, Property p )  
-    { Statement st = getProperty( s, p );
-    if (st == null) throw new PropertyNotFoundException( p );
-    return st; }
+    public Statement getRequiredProperty(Resource s, Property p) {
+        Statement st = getProperty( s, p );
+        if (st == null) throw new PropertyNotFoundException( p );
+        return st;
+    }
 
     @Override
-    public Statement getProperty( Resource s, Property p )
-    {
+    public Statement getRequiredProperty(Resource s, Property p, String lang) {
+        Statement st = getProperty( s, p , lang );
+        if (st == null) throw new PropertyNotFoundException( p );
+        return st;
+    }
+    
+    @Override
+    public Statement getProperty( Resource s, Property p ) {
         StmtIterator iter = listStatements( s, p, (RDFNode) null );
         try { return iter.hasNext() ? iter.nextStatement() : null; }
         finally { iter.close(); }
     }
 
+    @Override
+    public Statement getProperty( Resource s, Property p, String lang) {
+        StmtIterator iter = listStatements( s, p, null, lang );
+        try { return iter.hasNext() ? iter.nextStatement() : null; }
+        finally { iter.close(); }
+    }
+    
     public static Node asNode( RDFNode x )
     { return x == null ? Node.ANY : x.asNode(); }
 
-    private NodeIterator listObjectsFor( RDFNode s, RDFNode p )
-    {
+    private NodeIterator listObjectsFor( RDFNode s, RDFNode p ) {
         ClosableIterator<Node> xit = GraphUtil.listObjects(graph, asNode( s ), asNode( p ) ) ;
         return IteratorFactory.asRDFNodeIterator( xit, this );
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/95235b86/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ResourceImpl.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ResourceImpl.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ResourceImpl.java
index 55a7672..c6dc0f7 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ResourceImpl.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ResourceImpl.java
@@ -175,7 +175,7 @@ public class ResourceImpl extends EnhNode implements Resource {
     @Override
     public Statement getRequiredProperty( final Property p, final String lang )
         {
-        final StmtIterator it = mustHaveModel().listStatements(this, p, null, lang);
+        final StmtIterator it = listProperties(p, lang) ; 
         if (!it.hasNext()) throw new PropertyNotFoundException( p );
         return it.next();
         }
@@ -187,7 +187,7 @@ public class ResourceImpl extends EnhNode implements Resource {
     @Override
     public Statement getProperty( final Property p, final String lang )
         {
-        final StmtIterator it = mustHaveModel().listStatements(this, p, null, lang);
+        final StmtIterator it = listProperties(p, lang) ; 
         return it.hasNext() ? it.next() : null;
         }
 
@@ -196,6 +196,10 @@ public class ResourceImpl extends EnhNode implements Resource {
 		{ return mustHaveModel().listStatements( this, p, (RDFNode) null ); }
 
     @Override
+    public StmtIterator listProperties(Property p, String lang) 
+        { return mustHaveModel().listStatements( this, p, null, lang); }
+    
+    @Override
     public StmtIterator listProperties() 
     	{ return mustHaveModel().listStatements( this, null, (RDFNode) null ); }	
     

http://git-wip-us.apache.org/repos/asf/jena/blob/95235b86/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java
index e568452..6880d45 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredModelImpl.java
@@ -1270,6 +1270,23 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel {
 			}
 		}
 	}
+	
+    @Override
+    public Statement getProperty(Resource s, Property p, String lang)
+        throws ReadDeniedException, AuthenticationRequiredException {
+        final StmtIterator stmt = listStatements(s, p, null, lang);
+        try {
+            if (stmt.hasNext()) {
+                return SecuredStatementImpl.getInstance(
+                                                        holder.getSecuredItem(), stmt.next());
+            }
+            return null;
+        } finally {
+            if (stmt != null) {
+                stmt.close();
+            }
+        }
+    }
 
 	@Override
 	public SecuredProperty getProperty(final String uri)
@@ -1280,8 +1297,7 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel {
 	}
 
 	@Override
-	public SecuredProperty getProperty(final String nameSpace,
-			final String localName) throws ReadDeniedException,
+	public SecuredProperty getProperty(final String nameSpace, final String localName) throws ReadDeniedException,
 			AuthenticationRequiredException {
 		checkRead();
 		return SecuredPropertyImpl.getInstance(holder.getSecuredItem(), holder
@@ -1342,9 +1358,8 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel {
 	}
 
 	@Override
-	public SecuredStatement getRequiredProperty(final Resource s,
-			final Property p) throws ReadDeniedException,
-			AuthenticationRequiredException {
+	public SecuredStatement getRequiredProperty(final Resource s, final Property p)
+	    throws ReadDeniedException, AuthenticationRequiredException {
 		checkRead();
 		if (canRead(Triple.ANY)) {
 			return SecuredStatementImpl.getInstance(holder.getSecuredItem(),
@@ -1365,6 +1380,29 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel {
 	}
 
 	@Override
+	public SecuredStatement getRequiredProperty(final Resource s, final Property p, String lang) 
+	    throws ReadDeniedException, AuthenticationRequiredException {
+	    checkRead();
+	    if (canRead(Triple.ANY)) {
+	        return SecuredStatementImpl.getInstance(holder.getSecuredItem(),
+	                                                holder.getBaseItem().getRequiredProperty(s, p, lang));
+	    } else {
+	        final SecuredStatementIterator si = listStatements(s, p,
+	                                                           (RDFNode) null);
+	        try {
+	            if (si.hasNext()) {
+	                return (SecuredStatement) si.next();
+	            } else {
+	                throw new PropertyNotFoundException(p);
+	            }
+	        } finally {
+	            si.close();
+	        }
+	    }
+	}
+
+	
+	@Override
 	public SecuredResource getResource(final String uri) {
 		return createResource(uri);
 	}
@@ -2386,5 +2424,4 @@ public class SecuredModelImpl extends SecuredItemImpl implements SecuredModel {
 			}
 		}
 	}
-
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/95235b86/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java
index 79f38c6..c4f5c06 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java
@@ -507,7 +507,25 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
 		}
 	}
 
-	/**
+	@Override
+    public Statement getProperty(Property p, String lang) throws ReadDeniedException, AuthenticationRequiredException {
+        checkRead();
+        final ExtendedIterator<Statement> iter = holder.getBaseItem()
+                .listProperties(p, lang)
+                .filterKeep(new PermStatementFilter(Action.Read, this));
+        try {
+            if (iter.hasNext()) {
+                return org.apache.jena.permissions.model.impl.SecuredStatementImpl
+                        .getInstance(getModel(), iter.next());
+            } else {
+                return null;
+            }
+        } finally {
+            iter.close();
+        }
+    }
+
+    /**
 	 * Answer some resource R for which this.hasProperty( p, R ), or null if no
 	 * such R exists.
 	 * 
@@ -570,7 +588,26 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
 		}
 	}
 
-	/**
+	@Override
+    public Statement getRequiredProperty(Property p, String lang)
+        throws PropertyNotFoundException, ReadDeniedException, AuthenticationRequiredException {
+	    checkRead();
+	    final ExtendedIterator<Statement> iter = holder.getBaseItem()
+	        .listProperties(p, lang)
+	        .filterKeep(new PermStatementFilter(Action.Read, this));
+	    try {
+	        if (iter.hasNext()) {
+	            return org.apache.jena.permissions.model.impl.SecuredStatementImpl
+	                .getInstance(getModel(), iter.next());
+	        } else {
+	            throw new PropertyNotFoundException(p);
+	        }
+	    } finally {
+	        iter.close();
+	    }
+	}
+
+    /**
 	 * Return the URI of the resource, or null if it's a bnode.
 	 * 
 	 * @return The URI of the resource, or null if it's a bnode.
@@ -851,7 +888,14 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
 
 	}
 
-	/**
+	@Override
+    public StmtIterator listProperties(Property p, String lang)throws ReadDeniedException, AuthenticationRequiredException {
+        checkRead();
+        return new SecuredStatementIterator(getModel(), holder.getBaseItem()
+                .listProperties(p, lang));
+    }
+
+    /**
 	 * Delete all the statements with predicate <code>p</code> for this resource
 	 * from its associated securedModel.
 	 * 


[2/2] jena git commit: Add m2e exclusion

Posted by an...@apache.org.
Add m2e exclusion


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/9e21ac3a
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/9e21ac3a
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/9e21ac3a

Branch: refs/heads/master
Commit: 9e21ac3acdd785bc19154ced8a04018000ef5f7f
Parents: 158b64d
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Oct 6 14:54:26 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Oct 6 14:54:26 2016 +0100

----------------------------------------------------------------------
 jena-permissions/pom.xml | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/9e21ac3a/jena-permissions/pom.xml
----------------------------------------------------------------------
diff --git a/jena-permissions/pom.xml b/jena-permissions/pom.xml
index f34086a..f31172f 100644
--- a/jena-permissions/pom.xml
+++ b/jena-permissions/pom.xml
@@ -150,6 +150,38 @@
 				</executions>
 			</plugin>
 		</plugins>
+		<pluginManagement>
+		  <plugins>
+		    <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+		    <plugin>
+		      <groupId>org.eclipse.m2e</groupId>
+		      <artifactId>lifecycle-mapping</artifactId>
+		      <version>1.0.0</version>
+		      <configuration>
+		        <lifecycleMappingMetadata>
+		          <pluginExecutions>
+		            <pluginExecution>
+		              <pluginExecutionFilter>
+		                <groupId>org.codehaus.mojo</groupId>
+		                <artifactId>
+		                  build-helper-maven-plugin
+		                </artifactId>
+		                <versionRange>[1.9.1,)</versionRange>
+		                <goals>
+		                  <goal>add-resource</goal>
+		                  <goal>add-source</goal>
+		                </goals>
+		              </pluginExecutionFilter>
+		              <action>
+		                <ignore></ignore>
+		              </action>
+		            </pluginExecution>
+		          </pluginExecutions>
+		        </lifecycleMappingMetadata>
+		      </configuration>
+		    </plugin>
+		  </plugins>
+		</pluginManagement>
 	</build>
 	<dependencies>
 		<dependency>