You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2013/08/21 20:36:17 UTC
svn commit: r1516250 [3/4] - in /chemistry/opencmis/trunk:
chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/
chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/ap...
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrTypeManager.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrTypeManager.java?rev=1516250&r1=1516249&r2=1516250&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrTypeManager.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrTypeManager.java Wed Aug 21 18:36:15 2013
@@ -58,8 +58,8 @@ import org.slf4j.LoggerFactory;
/**
* Type Manager.
*/
-public class JcrTypeManager implements TypeManager {
- private static final Logger log = LoggerFactory.getLogger(JcrTypeManager.class);
+public class JcrTypeManager implements TypeManager {
+ private static final Logger LOG = LoggerFactory.getLogger(JcrTypeManager.class);
public static final String DOCUMENT_TYPE_ID = "cmis:document";
public static final String FOLDER_TYPE_ID = "cmis:folder";
@@ -75,8 +75,10 @@ public class JcrTypeManager implements T
/**
* Adds a type to collection with inheriting base type properties.
- * @param type type to add
- * @return <code>true</code> iff the type was successfully added
+ *
+ * @param type
+ * type to add
+ * @return <code>true</code> iff the type was successfully added
*/
public boolean addType(TypeDefinition type) {
if (type == null) {
@@ -96,17 +98,13 @@ public class JcrTypeManager implements T
TypeDefinition baseType;
if (newType.getBaseTypeId() == BaseTypeId.CMIS_DOCUMENT) {
baseType = copyTypeDefinition(fTypes.get(DOCUMENT_TYPE_ID).getTypeDefinition());
- }
- else if (newType.getBaseTypeId() == BaseTypeId.CMIS_FOLDER) {
+ } else if (newType.getBaseTypeId() == BaseTypeId.CMIS_FOLDER) {
baseType = copyTypeDefinition(fTypes.get(FOLDER_TYPE_ID).getTypeDefinition());
- }
- else if (newType.getBaseTypeId() == BaseTypeId.CMIS_RELATIONSHIP) {
+ } else if (newType.getBaseTypeId() == BaseTypeId.CMIS_RELATIONSHIP) {
baseType = copyTypeDefinition(fTypes.get(RELATIONSHIP_TYPE_ID).getTypeDefinition());
- }
- else if (newType.getBaseTypeId() == BaseTypeId.CMIS_POLICY) {
+ } else if (newType.getBaseTypeId() == BaseTypeId.CMIS_POLICY) {
baseType = copyTypeDefinition(fTypes.get(POLICY_TYPE_ID).getTypeDefinition());
- }
- else {
+ } else {
return false;
}
@@ -121,7 +119,7 @@ public class JcrTypeManager implements T
// add it
addTypeInternal(newType);
- log.info("Added type '" + newType.getId() + "'.");
+ LOG.info("Added type '" + newType.getId() + "'.");
return true;
}
@@ -132,20 +130,18 @@ public class JcrTypeManager implements T
}
public static boolean isVersionable(TypeDefinition typeDef) {
- return typeDef instanceof DocumentTypeDefinition
- ? ((DocumentTypeDefinition) typeDef).isVersionable()
- : false;
+ return typeDef instanceof DocumentTypeDefinition ? ((DocumentTypeDefinition) typeDef).isVersionable() : false;
}
public static TypeDefinition copyTypeDefinition(TypeDefinition type) {
return WSConverter.convert(WSConverter.convert(type));
}
-
+
/**
* See CMIS 1.0 section 2.2.2.3 getTypeChildren
*/
- public TypeDefinitionList getTypeChildren(String typeId, boolean includePropertyDefinitions,
- BigInteger maxItems, BigInteger skipCount) {
+ public TypeDefinitionList getTypeChildren(String typeId, boolean includePropertyDefinitions, BigInteger maxItems,
+ BigInteger skipCount) {
TypeDefinitionListImpl result = new TypeDefinitionListImpl(new ArrayList<TypeDefinition>());
@@ -170,8 +166,7 @@ public class JcrTypeManager implements T
result.setHasMoreItems(result.getList().size() + skip < 2);
result.setNumItems(BigInteger.valueOf(2));
- }
- else {
+ } else {
TypeDefinitionContainer tc = fTypes.get(typeId);
if (tc == null || tc.getChildren() == null) {
return result;
@@ -224,8 +219,7 @@ public class JcrTypeManager implements T
if (typeId == null) {
result.add(getTypesDescendants(d, fTypes.get(FOLDER_TYPE_ID), ipd));
result.add(getTypesDescendants(d, fTypes.get(DOCUMENT_TYPE_ID), ipd));
- }
- else {
+ } else {
TypeDefinitionContainer tc = fTypes.get(typeId);
if (tc != null) {
result.add(getTypesDescendants(d, tc, ipd));
@@ -235,7 +229,7 @@ public class JcrTypeManager implements T
return result;
}
- //------------------------------------------< JcrTypeManager >---
+ // ------------------------------------------< JcrTypeManager >---
public TypeDefinitionContainer getTypeById(String typeId) {
return fTypes.get(typeId);
@@ -248,7 +242,7 @@ public class JcrTypeManager implements T
return typeDef;
}
}
-
+
return null;
}
@@ -262,7 +256,7 @@ public class JcrTypeManager implements T
List<TypeDefinitionContainer> types = new ArrayList<TypeDefinitionContainer>(2);
types.add(fTypes.get(FOLDER_TYPE_ID));
types.add(fTypes.get(DOCUMENT_TYPE_ID));
- return types;
+ return types;
}
public String getPropertyIdForQueryName(TypeDefinition typeDefinition, String propQueryName) {
@@ -374,32 +368,32 @@ public class JcrTypeManager implements T
AbstractPropertyDefinition<?> result;
switch (datatype) {
- case BOOLEAN:
- result = new PropertyBooleanDefinitionImpl();
- break;
- case DATETIME:
- result = new PropertyDateTimeDefinitionImpl();
- break;
- case DECIMAL:
- result = new PropertyDecimalDefinitionImpl();
- break;
- case HTML:
- result = new PropertyHtmlDefinitionImpl();
- break;
- case ID:
- result = new PropertyIdDefinitionImpl();
- break;
- case INTEGER:
- result = new PropertyIntegerDefinitionImpl();
- break;
- case STRING:
- result = new PropertyStringDefinitionImpl();
- break;
- case URI:
- result = new PropertyUriDefinitionImpl();
- break;
- default:
- throw new RuntimeException("Unknown datatype! Spec change?");
+ case BOOLEAN:
+ result = new PropertyBooleanDefinitionImpl();
+ break;
+ case DATETIME:
+ result = new PropertyDateTimeDefinitionImpl();
+ break;
+ case DECIMAL:
+ result = new PropertyDecimalDefinitionImpl();
+ break;
+ case HTML:
+ result = new PropertyHtmlDefinitionImpl();
+ break;
+ case ID:
+ result = new PropertyIdDefinitionImpl();
+ break;
+ case INTEGER:
+ result = new PropertyIntegerDefinitionImpl();
+ break;
+ case STRING:
+ result = new PropertyStringDefinitionImpl();
+ break;
+ case URI:
+ result = new PropertyUriDefinitionImpl();
+ break;
+ default:
+ throw new RuntimeException("Unknown datatype! Spec change?");
}
result.setId(id);
@@ -417,7 +411,7 @@ public class JcrTypeManager implements T
return result;
}
- //------------------------------------------< private >---
+ // ------------------------------------------< private >---
/**
* Adds a type to collection.
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrUnversionedDocument.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrUnversionedDocument.java?rev=1516250&r1=1516249&r2=1516250&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrUnversionedDocument.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrUnversionedDocument.java Wed Aug 21 18:36:15 2013
@@ -29,15 +29,17 @@ import org.apache.chemistry.opencmis.jcr
import org.apache.chemistry.opencmis.jcr.type.JcrTypeHandlerManager;
/**
- * Instances of this class represent a non versionable cmis:document backed by an underlying JCR <code>Node</code>.
+ * Instances of this class represent a non versionable cmis:document backed by
+ * an underlying JCR <code>Node</code>.
*/
public class JcrUnversionedDocument extends JcrDocument {
-
- public JcrUnversionedDocument(Node node, JcrTypeManager typeManager, PathManager pathManager, JcrTypeHandlerManager typeHandlerManager) {
+
+ public JcrUnversionedDocument(Node node, JcrTypeManager typeManager, PathManager pathManager,
+ JcrTypeHandlerManager typeHandlerManager) {
super(node, typeManager, pathManager, typeHandlerManager);
}
- //------------------------------------------< protected >---
+ // ------------------------------------------< protected >---
@Override
protected Node getContextNode() throws RepositoryException {
@@ -86,7 +88,7 @@ public class JcrUnversionedDocument exte
@Override
protected String getCheckedOutId() {
- return null;
+ return null;
}
@Override
@@ -96,8 +98,7 @@ public class JcrUnversionedDocument exte
@Override
protected String getCheckInComment() {
- return "";
+ return "";
}
-
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrVersion.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrVersion.java?rev=1516250&r1=1516249&r2=1516250&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrVersion.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrVersion.java Wed Aug 21 18:36:15 2013
@@ -29,8 +29,8 @@ import javax.jcr.version.Version;
import org.apache.chemistry.opencmis.jcr.type.JcrTypeHandlerManager;
/**
- * Instances of this class represent a specific version of a cmis:document backed by an underlying
- * JCR <code>Node</code>.
+ * Instances of this class represent a specific version of a cmis:document
+ * backed by an underlying JCR <code>Node</code>.
*/
public class JcrVersion extends JcrVersionBase {
private static final Pattern VERSION_LABEL_PATTERN = Pattern.compile("(\\d+)(\\.(\\d+))?.*");
@@ -46,19 +46,18 @@ public class JcrVersion extends JcrVersi
this.version = version;
}
- //------------------------------------------< protected >---
+ // ------------------------------------------< protected >---
@Override
protected Node getContextNode() throws RepositoryException {
Node frozen = version.getFrozenNode();
if (frozen.hasNode(Node.JCR_CONTENT)) {
return frozen.getNode(Node.JCR_CONTENT);
- }
- else {
- return getNode().getNode(Node.JCR_CONTENT); // root version
+ } else {
+ return getNode().getNode(Node.JCR_CONTENT); // root version
}
}
-
+
@Override
protected String getObjectId() throws RepositoryException {
return getVersionSeriesId();
@@ -85,9 +84,7 @@ public class JcrVersion extends JcrVersi
String name = version.getName();
String major = parseVersion(name, GROUP_MINOR);
- return major == null
- ? name
- : (Integer.parseInt(major) + 1) + ".0";
+ return major == null ? name : (Integer.parseInt(major) + 1) + ".0";
}
@Override
@@ -95,23 +92,22 @@ public class JcrVersion extends JcrVersi
// todo set checkinComment
return "";
}
-
- //------------------------------------------< private >---
+
+ // ------------------------------------------< private >---
private static String parseVersion(String name, int group) {
Matcher matcher = VERSION_LABEL_PATTERN.matcher(name);
- return matcher.matches()
- ? matcher.group(group)
- : null;
+ return matcher.matches() ? matcher.group(group) : null;
}
/**
* Retrieve version name.
+ *
* @return version name
* @throws RepositoryException
*/
public String getVersionName() throws RepositoryException {
- return version.getName();
+ return version.getName();
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrVersionBase.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrVersionBase.java?rev=1516250&r1=1516249&r2=1516250&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrVersionBase.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/JcrVersionBase.java Wed Aug 21 18:36:15 2013
@@ -44,13 +44,14 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * Instances of this class represent a versionable cmis:document and its versions backed by an underlying
- * JCR <code>Node</code>.
+ * Instances of this class represent a versionable cmis:document and its
+ * versions backed by an underlying JCR <code>Node</code>.
*/
public abstract class JcrVersionBase extends JcrDocument {
private static final Logger log = LoggerFactory.getLogger(JcrVersionBase.class);
- protected JcrVersionBase(Node node, JcrTypeManager typeManager, PathManager pathManager, JcrTypeHandlerManager typeHandlerManager) {
+ protected JcrVersionBase(Node node, JcrTypeManager typeManager, PathManager pathManager,
+ JcrTypeHandlerManager typeHandlerManager) {
super(node, typeManager, pathManager, typeHandlerManager);
}
@@ -68,20 +69,20 @@ public abstract class JcrVersionBase ext
}
public JcrVersion next() {
- return new JcrVersion(getNode(), versions.nextVersion(), typeManager, pathManager, typeHandlerManager);
+ return new JcrVersion(getNode(), versions.nextVersion(), typeManager, pathManager,
+ typeHandlerManager);
}
public void remove() {
throw new UnsupportedOperationException();
}
};
- }
- catch (RepositoryException e) {
+ } catch (RepositoryException e) {
log.debug(e.getMessage(), e);
throw new CmisRuntimeException(e.getMessage(), e);
}
}
-
+
@Override
public void delete(boolean allVersions, boolean isPwc) {
Node node = getNode();
@@ -89,21 +90,17 @@ public abstract class JcrVersionBase ext
if (node.isCheckedOut()) {
if (isPwc) {
cancelCheckout(node);
- }
- else {
+ } else {
throw new CmisStorageException("Cannot delete checked out document: " + getId());
}
- }
- else if (allVersions) {
+ } else if (allVersions) {
checkout(node);
node.remove();
node.getSession().save();
- }
- else {
+ } else {
throw new CmisRuntimeException("Cannot delete a single version");
}
- }
- catch (RepositoryException e) {
+ } catch (RepositoryException e) {
log.debug(e.getMessage(), e);
throw new CmisRuntimeException(e.getMessage(), e);
}
@@ -111,7 +108,7 @@ public abstract class JcrVersionBase ext
/**
* See CMIS 1.0 section 2.2.7.1 checkOut
- *
+ *
* @throws CmisRuntimeException
*/
public JcrPrivateWorkingCopy checkout() {
@@ -123,8 +120,7 @@ public abstract class JcrVersionBase ext
checkout(node);
return getPwc();
- }
- catch (RepositoryException e) {
+ } catch (RepositoryException e) {
log.debug(e.getMessage(), e);
throw new CmisRuntimeException(e.getMessage(), e);
}
@@ -132,7 +128,7 @@ public abstract class JcrVersionBase ext
/**
* See CMIS 1.0 section 2.2.7.3 checkedIn
- *
+ *
* @throws CmisRuntimeException
*/
public JcrVersion checkin(Properties properties, ContentStream contentStream, String checkinComment) {
@@ -154,8 +150,7 @@ public abstract class JcrVersionBase ext
// todo handle checkinComment
checkin(node);
return (JcrVersion) create(node);
- }
- catch (RepositoryException e) {
+ } catch (RepositoryException e) {
log.debug(e.getMessage(), e);
throw new CmisRuntimeException(e.getMessage(), e);
}
@@ -163,25 +158,26 @@ public abstract class JcrVersionBase ext
/**
* See CMIS 1.0 section 2.2.7.2 cancelCheckout
- *
+ *
* @throws CmisRuntimeException
*/
public void cancelCheckout() {
Node node = getNode();
try {
cancelCheckout(node);
- }
- catch (RepositoryException e) {
+ } catch (RepositoryException e) {
log.debug(e.getMessage(), e);
throw new CmisRuntimeException(e.getMessage(), e);
}
}
/**
- * Get the private working copy of the versions series or throw an exception if not checked out.
- *
- * @return a {@link JcrPrivateWorkingCopy} instance
- * @throws CmisObjectNotFoundException if not checked out
+ * Get the private working copy of the versions series or throw an exception
+ * if not checked out.
+ *
+ * @return a {@link JcrPrivateWorkingCopy} instance
+ * @throws CmisObjectNotFoundException
+ * if not checked out
* @throws CmisRuntimeException
*/
public JcrPrivateWorkingCopy getPwc() {
@@ -189,12 +185,10 @@ public abstract class JcrVersionBase ext
Node node = getNode();
if (node.isCheckedOut()) {
return new JcrPrivateWorkingCopy(getNode(), typeManager, pathManager, typeHandlerManager);
- }
- else {
+ } else {
throw new CmisObjectNotFoundException("Not checked out document has no private working copy");
}
- }
- catch (RepositoryException e) {
+ } catch (RepositoryException e) {
log.debug(e.getMessage(), e);
throw new CmisRuntimeException(e.getMessage(), e);
}
@@ -202,9 +196,12 @@ public abstract class JcrVersionBase ext
/**
* Get a specific version by name
- * @param name name of the version to get
- * @return a {@link JcrVersion} instance for <code>name</code>
- * @throws CmisObjectNotFoundException if a version <code>name</code> does not exist
+ *
+ * @param name
+ * name of the version to get
+ * @return a {@link JcrVersion} instance for <code>name</code>
+ * @throws CmisObjectNotFoundException
+ * if a version <code>name</code> does not exist
* @throws CmisRuntimeException
*/
public JcrVersion getVersion(String name) {
@@ -213,25 +210,22 @@ public abstract class JcrVersionBase ext
VersionHistory versionHistory = getVersionHistory(node);
Version version = versionHistory.getVersion(name);
return new JcrVersion(node, version, typeManager, pathManager, typeHandlerManager);
- }
- catch (UnsupportedRepositoryOperationException e) {
+ } catch (UnsupportedRepositoryOperationException e) {
log.debug(e.getMessage(), e);
throw new CmisObjectNotFoundException(e.getMessage(), e);
- }
- catch (VersionException e) {
+ } catch (VersionException e) {
log.debug(e.getMessage(), e);
throw new CmisObjectNotFoundException(e.getMessage(), e);
- }
- catch (RepositoryException e) {
+ } catch (RepositoryException e) {
log.debug(e.getMessage(), e);
throw new CmisRuntimeException(e.getMessage(), e);
}
}
- //------------------------------------------< protected >---
+ // ------------------------------------------< protected >---
/**
- * @return Id of the version representing the base of this versions series
+ * @return Id of the version representing the base of this versions series
* @throws RepositoryException
*/
protected String getBaseNodeId() throws RepositoryException {
@@ -241,13 +235,13 @@ public abstract class JcrVersionBase ext
}
/**
- * @return Id of the private working copy of this version series
+ * @return Id of the private working copy of this version series
* @throws RepositoryException
*/
protected String getPwcId() throws RepositoryException {
return null;
}
-
+
@Override
protected void compileProperties(PropertiesImpl properties, Set<String> filter, ObjectInfoImpl objectInfo)
throws RepositoryException {
@@ -267,7 +261,7 @@ public abstract class JcrVersionBase ext
setAction(result, Action.CAN_CHECK_IN, true);
return result;
}
-
+
@Override
protected String getTypeIdInternal() {
return JcrTypeManager.DOCUMENT_TYPE_ID;
@@ -280,19 +274,15 @@ public abstract class JcrVersionBase ext
@Override
protected String getCheckedOutId() throws RepositoryException {
- return isCheckedOut()
- ? getVersionSeriesId() + "/pwc"
- : null;
+ return isCheckedOut() ? getVersionSeriesId() + "/pwc" : null;
}
@Override
protected String getCheckedOutBy() throws RepositoryException {
- return isCheckedOut()
- ? getNode().getSession().getUserID()
- : null;
+ return isCheckedOut() ? getNode().getSession().getUserID() : null;
}
-
- //------------------------------------------< private >---
+
+ // ------------------------------------------< private >---
private static void checkout(Node node) throws RepositoryException {
getVersionManager(node).checkout(node.getPath());
@@ -306,5 +296,5 @@ public abstract class JcrVersionBase ext
Version base = getBaseVersion(node);
getVersionManager(node).restore(base, true);
}
-
+
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/PathManager.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/PathManager.java?rev=1516250&r1=1516249&r2=1516250&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/PathManager.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/PathManager.java Wed Aug 21 18:36:15 2013
@@ -31,7 +31,7 @@ import org.slf4j.LoggerFactory;
* Utility class for mapping JCR paths to CMIS paths
*/
public class PathManager {
- private static final Logger log = LoggerFactory.getLogger(PathManager.class);
+ private static final Logger LOG = LoggerFactory.getLogger(PathManager.class);
/**
* Identifier of the root folder
@@ -46,7 +46,9 @@ public class PathManager {
private final String jcrRootPath;
/**
- * Create a new <code>PathManager</code> instance for the given JCR root path.
+ * Create a new <code>PathManager</code> instance for the given JCR root
+ * path.
+ *
* @param jcrRootPath
*/
public PathManager(String jcrRootPath) {
@@ -54,7 +56,7 @@ public class PathManager {
}
/**
- * @return the JCR root path
+ * @return the JCR root path
*/
public String getJcrRootPath() {
return jcrRootPath;
@@ -62,29 +64,29 @@ public class PathManager {
/**
* Determines whether a JCR <code>Node</code> is the root node wrt. to this
- * <code>PathManager</code> instance. That is, whether the path of the node is
- * equal to this instance's JCR root path.
+ * <code>PathManager</code> instance. That is, whether the path of the node
+ * is equal to this instance's JCR root path.
*
* @param node
- * @return <code>true</code> iff <code>node</code> is the root node wrt. to
- * this <code>PathManager</code> instance.
+ * @return <code>true</code> iff <code>node</code> is the root node wrt. to
+ * this <code>PathManager</code> instance.
*/
public boolean isRoot(Node node) {
try {
return node.getPath().equals(jcrRootPath);
- }
- catch (RepositoryException e) {
- log.debug(e.getMessage(), e);
+ } catch (RepositoryException e) {
+ LOG.debug(e.getMessage(), e);
throw new CmisRuntimeException(e.getMessage(), e);
}
}
/**
* Determine the CMIS path given a JCR <code>Node</code>.
- *
+ *
* @param node
* @return
- * @throws IllegalArgumentException when <code>node</code> is not part of the hierarchy
+ * @throws IllegalArgumentException
+ * when <code>node</code> is not part of the hierarchy
*/
public String getPath(Node node) {
try {
@@ -94,16 +96,16 @@ public class PathManager {
String path = node.getPath().substring(jcrRootPath.length());
return path.startsWith("/") ? path : '/' + path;
- }
- catch (RepositoryException e) {
- log.debug(e.getMessage(), e);
+ } catch (RepositoryException e) {
+ LOG.debug(e.getMessage(), e);
throw new CmisRuntimeException(e.getMessage(), e);
}
}
/**
* @param cmisPath
- * @return <code>true</code> iff <code>cmisPath</code> equals {@link PathManager#CMIS_ROOT_PATH}
+ * @return <code>true</code> iff <code>cmisPath</code> equals
+ * {@link PathManager#CMIS_ROOT_PATH}
*/
public static boolean isRoot(String cmisPath) {
return CMIS_ROOT_PATH.equals(cmisPath);
@@ -111,7 +113,7 @@ public class PathManager {
/**
* @param cmisPath
- * @return <code>true</code> iff <code>cmisPath</code>
+ * @return <code>true</code> iff <code>cmisPath</code>
*/
public static boolean isAbsolute(String cmisPath) {
return cmisPath.startsWith(CMIS_ROOT_PATH);
@@ -119,33 +121,38 @@ public class PathManager {
/**
* Create a CMIS path from a parent path and a child element
- * @param cmisPath parent path
- * @param child child element
+ *
+ * @param cmisPath
+ * parent path
+ * @param child
+ * child element
* @return
*/
public static String createCmisPath(String cmisPath, String child) {
- return cmisPath.length() > 0 && cmisPath.charAt(cmisPath.length() - 1) == '/'
- ? cmisPath + child
- : cmisPath + '/' + child;
+ return cmisPath.length() > 0 && cmisPath.charAt(cmisPath.length() - 1) == '/' ? cmisPath + child : cmisPath
+ + '/' + child;
}
/**
- * Relativize an CMIS path wrt. to a prefix.
+ * Relativize an CMIS path wrt. to a prefix.
+ *
* @param prefix
* @param cmisPath
- * @return a string <code>r</code> such that <code>prefix</code> + <code>r</code> = <code>cmisPath</code>
- * @throws IllegalArgumentException if <code>prefix</code> is not a prefix of <code>cmisPath</code>
+ * @return a string <code>r</code> such that <code>prefix</code> +
+ * <code>r</code> = <code>cmisPath</code>
+ * @throws IllegalArgumentException
+ * if <code>prefix</code> is not a prefix of
+ * <code>cmisPath</code>
*/
public static String relativize(String prefix, String cmisPath) {
if (cmisPath.startsWith(prefix)) {
return cmisPath.substring(prefix.length());
- }
- else {
+ } else {
throw new IllegalArgumentException(prefix + " is not a prefix of " + cmisPath);
}
}
- //------------------------------------------< private >---
+ // ------------------------------------------< private >---
private static String normalize(String path) {
if (path == null || path.length() == 0) {
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/PropertyHelper.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/PropertyHelper.java?rev=1516250&r1=1516249&r2=1516250&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/PropertyHelper.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/PropertyHelper.java Wed Aug 21 18:36:15 2013
@@ -50,11 +50,13 @@ public final class PropertyHelper {
/**
* Retrieve a string value.
- *
+ *
* @param properties
- * @param name the name of the value to retrieve
- * @return the first value of the given <code>name</code> or <code>null</code> if either
- * these are no string properties or no property of <code>name</code> exists.
+ * @param name
+ * the name of the value to retrieve
+ * @return the first value of the given <code>name</code> or
+ * <code>null</code> if either these are no string properties or no
+ * property of <code>name</code> exists.
*/
public static String getStringProperty(Properties properties, String name) {
PropertyData<?> property = properties.getProperties().get(name);
@@ -84,17 +86,21 @@ public final class PropertyHelper {
/**
* @param prop
- * @return <code>true</code> iff <code>prop</code> denotes an empty property data value
+ * @return <code>true</code> iff <code>prop</code> denotes an empty property
+ * data value
*/
public static boolean isPropertyEmpty(PropertyData<?> prop) {
return prop == null || prop.getValues() == null || prop.getValues().isEmpty();
}
/**
- * Determine the default property data value for a given property definition.
+ * Determine the default property data value for a given property
+ * definition.
+ *
* @param propDef
* @return
- * @throws CmisRuntimeException if <code>propDef</code> is invalid or unknown.
+ * @throws CmisRuntimeException
+ * if <code>propDef</code> is invalid or unknown.
*/
@SuppressWarnings("unchecked")
public static PropertyData<?> getDefaultValue(PropertyDefinition<?> propDef) {
@@ -105,24 +111,24 @@ public final class PropertyHelper {
List<?> defaultValue = propDef.getDefaultValue();
if (defaultValue != null && !defaultValue.isEmpty()) {
switch (propDef.getPropertyType()) {
- case BOOLEAN:
- return new PropertyBooleanImpl(propDef.getId(), (List<Boolean>) defaultValue);
- case DATETIME:
- return new PropertyDateTimeImpl(propDef.getId(), (List<GregorianCalendar>) defaultValue);
- case DECIMAL:
- return new PropertyDecimalImpl(propDef.getId(), (List<BigDecimal>) defaultValue);
- case HTML:
- return new PropertyHtmlImpl(propDef.getId(), (List<String>) defaultValue);
- case ID:
- return new PropertyIdImpl(propDef.getId(), (List<String>) defaultValue);
- case INTEGER:
- return new PropertyIntegerImpl(propDef.getId(), (List<BigInteger>) defaultValue);
- case STRING:
- return new PropertyStringImpl(propDef.getId(), (List<String>) defaultValue);
- case URI:
- return new PropertyUriImpl(propDef.getId(), (List<String>) defaultValue);
- default:
- throw new CmisRuntimeException("Unknown datatype: " + propDef.getPropertyType());
+ case BOOLEAN:
+ return new PropertyBooleanImpl(propDef.getId(), (List<Boolean>) defaultValue);
+ case DATETIME:
+ return new PropertyDateTimeImpl(propDef.getId(), (List<GregorianCalendar>) defaultValue);
+ case DECIMAL:
+ return new PropertyDecimalImpl(propDef.getId(), (List<BigDecimal>) defaultValue);
+ case HTML:
+ return new PropertyHtmlImpl(propDef.getId(), (List<String>) defaultValue);
+ case ID:
+ return new PropertyIdImpl(propDef.getId(), (List<String>) defaultValue);
+ case INTEGER:
+ return new PropertyIntegerImpl(propDef.getId(), (List<BigInteger>) defaultValue);
+ case STRING:
+ return new PropertyStringImpl(propDef.getId(), (List<String>) defaultValue);
+ case URI:
+ return new PropertyUriImpl(propDef.getId(), (List<String>) defaultValue);
+ default:
+ throw new CmisRuntimeException("Unknown datatype: " + propDef.getPropertyType());
}
}
return null;
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/AbstractJcrTypeHandler.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/AbstractJcrTypeHandler.java?rev=1516250&r1=1516249&r2=1516250&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/AbstractJcrTypeHandler.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/AbstractJcrTypeHandler.java Wed Aug 21 18:36:15 2013
@@ -24,8 +24,8 @@ import org.apache.chemistry.opencmis.jcr
import org.apache.chemistry.opencmis.jcr.type.JcrTypeHandlerManager;
/**
- * This abstract class takes care of collecting references set when the handler is added to
- * {@link JcrTypeHandlerManager}.
+ * This abstract class takes care of collecting references set when the handler
+ * is added to {@link JcrTypeHandlerManager}.
*/
public abstract class AbstractJcrTypeHandler implements JcrTypeHandler {
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentIdentifierMap.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentIdentifierMap.java?rev=1516250&r1=1516249&r2=1516250&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentIdentifierMap.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentIdentifierMap.java Wed Aug 21 18:36:15 2013
@@ -43,7 +43,6 @@ public class DefaultDocumentIdentifierMa
@Override
public String jcrTypeCondition() {
- return (isVersionable ? "" : "not") +
- "(@jcr:mixinTypes = 'mix:simpleVersionable')";
+ return (isVersionable ? "" : "not") + "(@jcr:mixinTypes = 'mix:simpleVersionable')";
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentTypeHandler.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentTypeHandler.java?rev=1516250&r1=1516249&r2=1516250&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentTypeHandler.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentTypeHandler.java Wed Aug 21 18:36:15 2013
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
*/
public class DefaultDocumentTypeHandler extends AbstractJcrTypeHandler implements JcrDocumentTypeHandler {
- private static final Logger log = LoggerFactory.getLogger(JcrFolder.class);
+ private static final Logger LOG = LoggerFactory.getLogger(JcrFolder.class);
public String getTypeId() {
return BaseTypeId.CMIS_DOCUMENT.value();
@@ -100,47 +100,43 @@ public class DefaultDocumentTypeHandler
public boolean canHandle(Node node) throws RepositoryException {
return node.isNodeType(NodeType.NT_FILE) && node.isNodeType(supportedVersioningType(node));
}
-
+
protected String supportedVersioningType(Node node) throws RepositoryException {
- if (Util.supportOption(node, Repository.OPTION_SIMPLE_VERSIONING_SUPPORTED)) {
- return NodeType.MIX_SIMPLE_VERSIONABLE;
- }
-
- if(Util.supportOption(node, Repository.OPTION_VERSIONING_SUPPORTED)) {
- return NodeType.MIX_VERSIONABLE;
- }
-
- throw new RepositoryException("The repository does not support versioning!");
- }
+ if (Util.supportOption(node, Repository.OPTION_SIMPLE_VERSIONING_SUPPORTED)) {
+ return NodeType.MIX_SIMPLE_VERSIONABLE;
+ }
+ if (Util.supportOption(node, Repository.OPTION_VERSIONING_SUPPORTED)) {
+ return NodeType.MIX_VERSIONABLE;
+ }
+
+ throw new RepositoryException("The repository does not support versioning!");
+ }
public JcrNode createDocument(JcrFolder parentFolder, String name, Properties properties,
- ContentStream contentStream, VersioningState versioningState) {
+ ContentStream contentStream, VersioningState versioningState) {
try {
Node fileNode = parentFolder.getNode().addNode(name, NodeType.NT_FILE);
- addFileNodeMixins(fileNode,versioningState);
+ addFileNodeMixins(fileNode, versioningState);
Node contentNode = fileNode.addNode(Node.JCR_CONTENT, NodeType.NT_RESOURCE);
addContentNodeMixins(contentNode);
// compile the properties
setContentNodeProperties(contentNode, properties);
// write content, if available
updateContentNode(contentStream, contentNode);
- //save changes
+ // save changes
fileNode.getSession().save();
return getJcrNode(fileNode, versioningState);
- }
- catch (RepositoryException e) {
- log.debug(e.getMessage(), e);
+ } catch (RepositoryException e) {
+ LOG.debug(e.getMessage(), e);
throw new CmisStorageException(e.getMessage(), e);
- }
- catch (IOException e) {
- log.debug(e.getMessage(), e);
+ } catch (IOException e) {
+ LOG.debug(e.getMessage(), e);
throw new CmisStorageException(e.getMessage(), e);
}
}
- protected JcrNode getJcrNode(Node fileNode, VersioningState versioningState)
- throws RepositoryException {
+ protected JcrNode getJcrNode(Node fileNode, VersioningState versioningState) throws RepositoryException {
JcrNode jcrFileNode = getJcrNode(fileNode);
if (versioningState == VersioningState.NONE) {
return jcrFileNode;
@@ -154,18 +150,16 @@ public class DefaultDocumentTypeHandler
}
}
- protected void updateContentNode(ContentStream contentStream, Node contentNode)
- throws IOException, RepositoryException {
- Binary binary = contentStream == null || contentStream.getStream() == null
- ? JcrBinary.EMPTY
- : new JcrBinary(new BufferedInputStream(contentStream.getStream()));
+ protected void updateContentNode(ContentStream contentStream, Node contentNode) throws IOException,
+ RepositoryException {
+ Binary binary = contentStream == null || contentStream.getStream() == null ? JcrBinary.EMPTY : new JcrBinary(
+ new BufferedInputStream(contentStream.getStream()));
try {
contentNode.setProperty(Property.JCR_DATA, binary);
if (contentStream != null && contentStream.getMimeType() != null) {
contentNode.setProperty(Property.JCR_MIMETYPE, contentStream.getMimeType());
}
- }
- finally {
+ } finally {
binary.dispose();
}
}
@@ -178,8 +172,7 @@ public class DefaultDocumentTypeHandler
contentNode.addMixin(NodeType.MIX_CREATED);
}
- protected void addFileNodeMixins(Node fileNode, VersioningState versioningState)
- throws RepositoryException {
+ protected void addFileNodeMixins(Node fileNode, VersioningState versioningState) throws RepositoryException {
if (versioningState != VersioningState.NONE) {
fileNode.addMixin(supportedVersioningType(fileNode));
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultFolderTypeHandler.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultFolderTypeHandler.java?rev=1516250&r1=1516249&r2=1516250&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultFolderTypeHandler.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/impl/DefaultFolderTypeHandler.java Wed Aug 21 18:36:15 2013
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
*/
public class DefaultFolderTypeHandler extends AbstractJcrTypeHandler implements JcrFolderTypeHandler {
- private static final Logger log = LoggerFactory.getLogger(DefaultFolderTypeHandler.class);
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultFolderTypeHandler.class);
private static class FolderIdentifierMap extends DefaultIdentifierMapBase {
@@ -94,12 +94,11 @@ public class DefaultFolderTypeHandler ex
addMixins(node);
// compile the properties
updateProperties(node, properties);
- //save changes
+ // save changes
node.getSession().save();
return getJcrNode(node);
- }
- catch (RepositoryException e) {
- log.debug(e.getMessage(), e);
+ } catch (RepositoryException e) {
+ LOG.debug(e.getMessage(), e);
throw new CmisStorageException(e.getMessage(), e);
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/query/Evaluator.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/query/Evaluator.java?rev=1516250&r1=1516249&r2=1516250&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/query/Evaluator.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/query/Evaluator.java Wed Aug 21 18:36:15 2013
@@ -33,102 +33,102 @@ public interface Evaluator<T> {
/** Create a new instance of this <code>Evaluator</code>. */
Evaluator<T> op();
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NOT} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NOT} nodes. */
T not(T op);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#AND} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#AND} nodes. */
T and(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#OR} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#OR} nodes. */
T or(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#EQ} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#EQ} nodes. */
T eq(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NEQ} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NEQ} nodes. */
T neq(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#GT} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#GT} nodes. */
T gt(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#GTEQ} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#GTEQ} nodes. */
T gteq(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#LT} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#LT} nodes. */
T lt(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#LTEQ} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#LTEQ} nodes. */
T lteq(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IN} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IN} nodes. */
T in(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NOT_IN} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NOT_IN} nodes. */
T notIn(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IN_ANY} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IN_ANY} nodes. */
T inAny(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NOT_IN_ANY} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NOT_IN_ANY} nodes. */
T notInAny(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#EQ_ANY} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#EQ_ANY} nodes. */
T eqAny(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IS_NULL} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IS_NULL} nodes. */
T isNull(T op);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IS_NOT_NULL} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IS_NOT_NULL} nodes. */
T notIsNull(T op);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#LIKE} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#LIKE} nodes. */
T like(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NOT_LIKE} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NOT_LIKE} nodes. */
T notLike(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#CONTAINS} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#CONTAINS} nodes. */
T contains(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IN_FOLDER} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IN_FOLDER} nodes. */
T inFolder(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IN_TREE} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IN_TREE} nodes. */
T inTree(T op1, T op2);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IN_LIST} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#IN_LIST} nodes. */
T list(List<T> ops);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#BOOL_LIT} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#BOOL_LIT} nodes. */
T value(boolean value);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NUM_LIT} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NUM_LIT} nodes. */
T value(double value);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NUM_LIT} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#NUM_LIT} nodes. */
T value(long value);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#STRING_LIT} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#STRING_LIT} nodes. */
T value(String value);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#TIME_LIT} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#TIME_LIT} nodes. */
T value(GregorianCalendar value);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#COL} nodes */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.CmisQlStrictLexer#COL} nodes. */
T col(String name);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.TextSearchLexer#TEXT_AND} */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.TextSearchLexer#TEXT_AND}. */
T textAnd(List<T> ops);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.TextSearchLexer#TEXT_OR} */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.TextSearchLexer#TEXT_OR}. */
T textOr(List<T> ops);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.TextSearchLexer#TEXT_MINUS} */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.TextSearchLexer#TEXT_MINUS}. */
T textMinus(String text);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.TextSearchLexer#TEXT_SEARCH_WORD_LIT} */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.TextSearchLexer#TEXT_SEARCH_WORD_LIT}. */
T textWord(String word);
- /** Handle {@link org.apache.chemistry.opencmis.server.support.query.TextSearchLexer#TEXT_SEARCH_PHRASE_STRING_LIT} */
+ /** Handle {@link org.apache.chemistry.opencmis.server.support.query.TextSearchLexer#TEXT_SEARCH_PHRASE_STRING_LIT}. */
T textPhrase(String phrase);
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/query/EvaluatorXPath.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/query/EvaluatorXPath.java?rev=1516250&r1=1516249&r2=1516250&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/query/EvaluatorXPath.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-jcr/src/main/java/org/apache/chemistry/opencmis/jcr/query/EvaluatorXPath.java Wed Aug 21 18:36:15 2013
@@ -26,9 +26,10 @@ import org.apache.chemistry.opencmis.jcr
import org.apache.chemistry.opencmis.jcr.util.Iterables;
/**
- * This implementation of {@link Evaluator} results in an instance of a {@link XPathBuilder} which
- * can be used to validated the where clause of the original CMIS query and translate it to a
- * corresponding (i.e. semantically equal) XPath condition.
+ * This implementation of {@link Evaluator} results in an instance of a
+ * {@link XPathBuilder} which can be used to validated the where clause of the
+ * original CMIS query and translate it to a corresponding (i.e. semantically
+ * equal) XPath condition.
*/
public class EvaluatorXPath extends EvaluatorBase<XPathBuilder> {
@@ -55,11 +56,11 @@ public class EvaluatorXPath extends Eval
public String xPath() {
if (eval(true) != null) {
return eval(true) ? "true()" : "false()";
- }
- else {
+ } else {
return "not(" + op.xPath() + ")";
}
}
+
public Boolean eval(Boolean folderPredicateValuation) {
return not(op.eval(folderPredicateValuation));
}
@@ -76,17 +77,19 @@ public class EvaluatorXPath extends Eval
public String xPath() {
if (eval(true) != null) {
return eval(true) ? "true()" : "false()";
- }
- else if (op1.eval(true) != null) { // if not null, op1 must be true -> shortcut evaluation to op2
+ } else if (op1.eval(true) != null) { // if not null, op1 must be
+ // true -> shortcut
+ // evaluation to op2
return op2.xPath();
- }
- else if (op2.eval(true) != null) { // if not null, op2 must be true -> shortcut evaluation to op1
+ } else if (op2.eval(true) != null) { // if not null, op2 must be
+ // true -> shortcut
+ // evaluation to op1
return op1.xPath();
- }
- else {
+ } else {
return op1.xPath() + " and " + op2.xPath();
}
}
+
public Boolean eval(Boolean folderPredicateValuation) {
return and(op1.eval(folderPredicateValuation), op2.eval(folderPredicateValuation));
}
@@ -103,17 +106,19 @@ public class EvaluatorXPath extends Eval
public String xPath() {
if (eval(true) != null) {
return eval(true) ? "true()" : "false()";
- }
- else if (op1.eval(true) != null) { // if not null, op1 must be false -> shortcut evaluation to op2
+ } else if (op1.eval(true) != null) { // if not null, op1 must be
+ // false -> shortcut
+ // evaluation to op2
return op2.xPath();
- }
- else if (op2.eval(true) != null) { // if not null, op2 must be false -> shortcut evaluation to op2
+ } else if (op2.eval(true) != null) { // if not null, op2 must be
+ // false -> shortcut
+ // evaluation to op2
return op1.xPath();
- }
- else {
+ } else {
return "(" + op1.xPath() + " or " + op2.xPath() + ")";
}
}
+
public Boolean eval(Boolean folderPredicateValuation) {
return or(op1.eval(folderPredicateValuation), op2.eval(folderPredicateValuation));
}
@@ -156,27 +161,27 @@ public class EvaluatorXPath extends Eval
@Override
public XPathBuilder in(XPathBuilder op1, XPathBuilder op2) {
- return super.in(op1, op2); // todo implement in
+ return super.in(op1, op2); // todo implement in
}
@Override
public XPathBuilder notIn(XPathBuilder op1, XPathBuilder op2) {
- return super.notIn(op1, op2); // todo implement notIn
+ return super.notIn(op1, op2); // todo implement notIn
}
@Override
public XPathBuilder inAny(XPathBuilder op1, XPathBuilder op2) {
- return super.inAny(op1, op2); // todo implement inAny
+ return super.inAny(op1, op2); // todo implement inAny
}
@Override
public XPathBuilder notInAny(XPathBuilder op1, XPathBuilder op2) {
- return super.notInAny(op1, op2); // todo implement notInAny
+ return super.notInAny(op1, op2); // todo implement notInAny
}
@Override
public XPathBuilder eqAny(XPathBuilder op1, XPathBuilder op2) {
- return super.eqAny(op1, op2); // todo implement eqAny
+ return super.eqAny(op1, op2); // todo implement eqAny
}
@Override
@@ -199,7 +204,7 @@ public class EvaluatorXPath extends Eval
return new FunctionBuilder("jcr:like", op1, op2) {
@Override
public String xPath() {
- return "not(" + super.xPath() + ")";
+ return "not(" + super.xPath() + ")";
}
};
}
@@ -210,7 +215,7 @@ public class EvaluatorXPath extends Eval
}
@Override
- public XPathBuilder inFolder(XPathBuilder op1,XPathBuilder op2) {
+ public XPathBuilder inFolder(XPathBuilder op1, XPathBuilder op2) {
return new FolderPredicateBuilder(op2.xPath(), false);
}
@@ -221,7 +226,7 @@ public class EvaluatorXPath extends Eval
@Override
public XPathBuilder list(List<XPathBuilder> ops) {
- return super.list(ops); // todo implement list
+ return super.list(ops); // todo implement list
}
@Override
@@ -279,7 +284,7 @@ public class EvaluatorXPath extends Eval
return new TextPhraseBuilder(phrase);
}
- //------------------------------------------< protected >---
+ // ------------------------------------------< protected >---
/**
* Resolve from a CMIS object id to the corresponding absolute JCR path.
@@ -290,49 +295,50 @@ public class EvaluatorXPath extends Eval
}
/**
- * Resolve from a column name in the query to the corresponding
- * relative JCR path. The path must be relative to the context node.
- * This default implementations simply returns <code>name</code>.
+ * Resolve from a column name in the query to the corresponding relative JCR
+ * path. The path must be relative to the context node. This default
+ * implementations simply returns <code>name</code>.
*/
protected String jcrPathFromCol(String name) {
- return name;
+ return name;
}
- //------------------------------------------< private >---
+ // ------------------------------------------< private >---
/**
- * @return <code>null</code> if <code>b</code> is <code>null</code>, <code>!b</code> otherwise.
+ * @return <code>null</code> if <code>b</code> is <code>null</code>,
+ * <code>!b</code> otherwise.
*/
private static Boolean not(Boolean b) {
return b == null ? null : !b;
}
/**
- * @return
- * <ul><li><code>true</code> if either of <code>b1</code> and <code>b2</code> is <code>true</code>,</li>
- * <li><code>false</code> if both <code>b1</code> and <code>b2</code> are <code>false</code>,</li>
- * <li><code>null</code> otherwise.</li></ul>
+ * @return <ul>
+ * <li><code>true</code> if either of <code>b1</code> and
+ * <code>b2</code> is <code>true</code>,</li>
+ * <li><code>false</code> if both <code>b1</code> and
+ * <code>b2</code> are <code>false</code>,</li>
+ * <li><code>null</code> otherwise.</li>
+ * </ul>
*/
private static Boolean or(Boolean b1, Boolean b2) {
- return Boolean.TRUE.equals(b1) || Boolean.TRUE.equals(b2)
- ? Boolean.TRUE
- : Boolean.FALSE.equals(b1) && Boolean.FALSE.equals(b2)
- ? Boolean.FALSE
- : null;
+ return Boolean.TRUE.equals(b1) || Boolean.TRUE.equals(b2) ? Boolean.TRUE : Boolean.FALSE.equals(b1)
+ && Boolean.FALSE.equals(b2) ? Boolean.FALSE : null;
}
/**
- * @return
- * <ul><li><code>false</code> if either of <code>b1</code> and <code>b2</code> is <code>false</code>,</li>
- * <li><code>true</code> if both <code>b1</code> and <code>b2</code> are <code>true</code>,</li>
- * <li><code>null</code> otherwise.</li></ul>
+ * @return <ul>
+ * <li><code>false</code> if either of <code>b1</code> and
+ * <code>b2</code> is <code>false</code>,</li>
+ * <li><code>true</code> if both <code>b1</code> and <code>b2</code>
+ * are <code>true</code>,</li>
+ * <li><code>null</code> otherwise.</li>
+ * </ul>
*/
private static Boolean and(Boolean b1, Boolean b2) {
- return Boolean.FALSE.equals(b1) || Boolean.FALSE.equals(b2)
- ? Boolean.FALSE
- : Boolean.TRUE.equals(b1) && Boolean.TRUE.equals(b2)
- ? Boolean.TRUE
- : null;
+ return Boolean.FALSE.equals(b1) || Boolean.FALSE.equals(b2) ? Boolean.FALSE : Boolean.TRUE.equals(b1)
+ && Boolean.TRUE.equals(b2) ? Boolean.TRUE : null;
}
private static class RelOpBuilder implements XPathBuilder {
@@ -362,7 +368,7 @@ public class EvaluatorXPath extends Eval
private class FolderPredicateBuilder implements XPathBuilder {
private final String folderId;
private final boolean includeDescendants;
-
+
public FolderPredicateBuilder(String folderId, boolean includeDescendants) {
this.folderId = stripQuotes(folderId);
this.includeDescendants = includeDescendants;
@@ -381,9 +387,8 @@ public class EvaluatorXPath extends Eval
}
private String stripQuotes(String string) {
- return (string.startsWith("'") || string.startsWith("\"")) && string.length() >= 2
- ? string.substring(1, string.length() - 1)
- : string;
+ return (string.startsWith("'") || string.startsWith("\"")) && string.length() >= 2 ? string.substring(1,
+ string.length() - 1) : string;
}
}
@@ -398,7 +403,7 @@ public class EvaluatorXPath extends Eval
}
}
- private static class LiteralBuilder extends PrimitiveBuilder {
+ private static class LiteralBuilder extends PrimitiveBuilder {
private final String xPath;
public LiteralBuilder(String value) {
@@ -426,7 +431,7 @@ public class EvaluatorXPath extends Eval
}
}
- private class ColRefBuilder extends PrimitiveBuilder {
+ private class ColRefBuilder extends PrimitiveBuilder {
private final String colRef;
public ColRefBuilder(String colRef) {
@@ -434,7 +439,7 @@ public class EvaluatorXPath extends Eval
}
public String xPath() {
- return jcrPathFromCol(colRef);
+ return jcrPathFromCol(colRef);
}
}
@@ -459,9 +464,8 @@ public class EvaluatorXPath extends Eval
}
public String xPath() {
- return function == null
- ? op1.xPath()
- : function + "(" + op1.xPath() + (op2 == null ? "" : ", " + op2.xPath()) + ")";
+ return function == null ? op1.xPath() : function + "(" + op1.xPath()
+ + (op2 == null ? "" : ", " + op2.xPath()) + ")";
}
}
@@ -482,14 +486,14 @@ public class EvaluatorXPath extends Eval
private final String relOp;
public TextOpBuilder(List<XPathBuilder> ops, String relOp) {
- this.ops = ops;
+ this.ops = ops;
this.relOp = relOp;
}
public String xPath() {
StringBuilder sb = new StringBuilder();
String sep = "";
- for (XPathBuilder op: ops) {
+ for (XPathBuilder op : ops) {
sb.append(sep).append(op.xPath());
sep = relOp;
}
@@ -497,7 +501,7 @@ public class EvaluatorXPath extends Eval
return sb.toString();
}
}
-
+
private static class TextMinusBuilder extends PrimitiveBuilder {
private final String text;
@@ -509,7 +513,7 @@ public class EvaluatorXPath extends Eval
return "-" + escape(text);
}
}
-
+
private static class TextWordBuilder extends PrimitiveBuilder {
private final String word;
@@ -535,9 +539,9 @@ public class EvaluatorXPath extends Eval
}
/**
- * Within the searchexp literal instances of single quote ('), double quote (")
- * and hyphen (-) must be escaped with a backslash (\). Backslash itself must
- * therefore also be escaped, ending up as double backslash (\\).
+ * Within the searchexp literal instances of single quote ('), double quote
+ * (") and hyphen (-) must be escaped with a backslash (\). Backslash itself
+ * must therefore also be escaped, ending up as double backslash (\\).
*/
private static String escape(String s) {
if (s == null) {