You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2009/06/09 10:59:00 UTC
svn commit: r782921 - in
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype:
compact/CompactNodeTypeDefReader.java xml/NodeTypeReader.java
Author: angela
Date: Tue Jun 9 08:58:59 2009
New Revision: 782921
URL: http://svn.apache.org/viewvc?rev=782921&view=rev
Log:
JCR-1104: JSR 283 support
- use valuefactory that supports 283 features
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/compact/CompactNodeTypeDefReader.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/xml/NodeTypeReader.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/compact/CompactNodeTypeDefReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/compact/CompactNodeTypeDefReader.java?rev=782921&r1=782920&r2=782921&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/compact/CompactNodeTypeDefReader.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/compact/CompactNodeTypeDefReader.java Tue Jun 9 08:58:59 2009
@@ -26,19 +26,22 @@
import org.apache.jackrabbit.core.nodetype.ValueConstraint;
import org.apache.jackrabbit.core.nodetype.NodeTypeDefinitionImpl;
import org.apache.jackrabbit.core.value.InternalValue;
+import org.apache.jackrabbit.core.value.InternalValueFactory;
import org.apache.jackrabbit.spi.commons.conversion.NameException;
import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
import org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver;
import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.QValueFactory;
import org.apache.jackrabbit.spi.commons.name.NameConstants;
import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
import org.apache.jackrabbit.spi.commons.namespace.NamespaceMapping;
import org.apache.jackrabbit.spi.commons.nodetype.compact.Lexer;
import org.apache.jackrabbit.spi.commons.nodetype.compact.ParseException;
import org.apache.jackrabbit.spi.commons.query.qom.Operator;
+import org.apache.jackrabbit.spi.commons.value.ValueFactoryQImpl;
+import org.apache.jackrabbit.spi.commons.value.ValueFormat;
import org.apache.jackrabbit.util.ISO9075;
import org.apache.jackrabbit.value.ValueHelper;
-import org.apache.jackrabbit.value.ValueFactoryImpl;
import javax.jcr.NamespaceException;
import javax.jcr.PropertyType;
@@ -163,17 +166,27 @@
/**
* the current namespace mapping
*/
- private NamespaceMapping nsMapping;
+ private final NamespaceMapping nsMapping;
/**
* Name and Path resolver
*/
- private NamePathResolver resolver;
+ private final NamePathResolver resolver;
+
+ /**
+ * Value factory
+ */
+ private final ValueFactory valueFactory;
+
+ /**
+ * Factory for InternalValue(s)
+ */
+ private final QValueFactory qValueFactory = InternalValueFactory.getInstance();
/**
* the underlying lexer
*/
- private Lexer lexer;
+ private final Lexer lexer;
/**
* the current token
@@ -202,6 +215,8 @@
lexer = new Lexer(r, systemId);
this.nsMapping = mapping;
this.resolver = new DefaultNamePathResolver(nsMapping);
+ valueFactory = new ValueFactoryQImpl(qValueFactory, resolver);
+
nextToken();
parse();
}
@@ -593,15 +608,15 @@
if (!currentTokenEquals(Lexer.DEFAULT)) {
return;
}
- List defaultValues = new ArrayList();
+ List<InternalValue> defaultValues = new ArrayList();
do {
nextToken();
InternalValue value = null;
try {
Value v = ValueHelper.convert(
currentToken, pdi.getRequiredType(),
- ValueFactoryImpl.getInstance());
- value = InternalValue.create(v, resolver);
+ valueFactory);
+ value = (InternalValue) ValueFormat.getQValue(v, resolver, qValueFactory);
} catch (ValueFormatException e) {
lexer.fail("'" + currentToken + "' is not a valid string"
+ " representation of a value of type " + pdi.getRequiredType());
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/xml/NodeTypeReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/xml/NodeTypeReader.java?rev=782921&r1=782920&r2=782921&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/xml/NodeTypeReader.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/xml/NodeTypeReader.java Tue Jun 9 08:58:59 2009
@@ -27,17 +27,22 @@
import org.apache.jackrabbit.core.nodetype.ValueConstraint;
import org.apache.jackrabbit.core.util.DOMWalker;
import org.apache.jackrabbit.core.value.InternalValue;
+import org.apache.jackrabbit.core.value.InternalValueFactory;
import org.apache.jackrabbit.spi.commons.conversion.NameException;
import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
import org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver;
import org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver;
+import org.apache.jackrabbit.spi.commons.value.ValueFactoryQImpl;
+import org.apache.jackrabbit.spi.commons.value.ValueFormat;
import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.QValueFactory;
import org.apache.jackrabbit.value.ValueHelper;
-import org.apache.jackrabbit.value.ValueFactoryImpl;
import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
import javax.jcr.NamespaceException;
+import javax.jcr.ValueFactory;
+import javax.jcr.Value;
import javax.jcr.query.qom.QueryObjectModelConstants;
import javax.jcr.version.OnParentVersionAction;
import java.io.IOException;
@@ -87,6 +92,10 @@
/** The name, path resolver. */
private final NamePathResolver resolver;
+ private final ValueFactory valueFactory;
+
+ private final QValueFactory qValueFactory = InternalValueFactory.getInstance();
+
/**
* Creates a node type definition file reader.
*
@@ -98,6 +107,7 @@
namespaces = walker.getNamespaces();
NamespaceResolver nsResolver = new AdditionalNamespaceResolver(namespaces);
resolver = new DefaultNamePathResolver(nsResolver);
+ valueFactory = new ValueFactoryQImpl(qValueFactory, resolver);
}
/**
@@ -284,7 +294,7 @@
// default values
if (walker.enterElement(Constants.DEFAULTVALUES_ELEMENT)) {
- List values = new ArrayList();
+ List<InternalValue> values = new ArrayList();
int type = def.getRequiredType();
if (type == PropertyType.UNDEFINED) {
type = PropertyType.STRING;
@@ -292,8 +302,8 @@
while (walker.iterateElements(Constants.DEFAULTVALUE_ELEMENT)) {
String value = walker.getContent();
try {
- values.add(InternalValue.create(ValueHelper.convert(
- value, type, ValueFactoryImpl.getInstance()), resolver));
+ Value v = ValueHelper.convert(value, type, valueFactory);
+ values.add((InternalValue) ValueFormat.getQValue(v, resolver, qValueFactory));
} catch (RepositoryException e) {
throw new InvalidNodeTypeDefException(
"Unable to create default value: " + value, e);