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>