You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2007/10/24 16:39:16 UTC
svn commit: r587899 - in /jackrabbit/trunk:
jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/
jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/value/
jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/
Author: reschke
Date: Wed Oct 24 07:39:14 2007
New Revision: 587899
URL: http://svn.apache.org/viewvc?rev=587899&view=rev
Log:
JCR-1151: add QValue.getLong()/getDouble() and matching factory methods in QValueFactory.
Modified:
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ValueConstraint.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/value/QValueFactoryImpl.java
jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/value/ValueFormat.java
jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/QValue.java
jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/QValueFactory.java
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ValueConstraint.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ValueConstraint.java?rev=587899&r1=587898&r2=587899&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ValueConstraint.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ValueConstraint.java Wed Oct 24 07:39:14 2007
@@ -463,11 +463,11 @@
}
switch (value.getType()) {
case PropertyType.LONG:
- check(Long.parseLong(value.getString()));
+ check(value.getLong());
return;
case PropertyType.DOUBLE:
- check(Double.parseDouble(value.getString()));
+ check(value.getDouble());
return;
case PropertyType.BINARY:
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/value/QValueFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/value/QValueFactoryImpl.java?rev=587899&r1=587898&r2=587899&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/value/QValueFactoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/value/QValueFactoryImpl.java Wed Oct 24 07:39:14 2007
@@ -106,6 +106,20 @@
}
/**
+ * @see QValueFactory#create(double)
+ */
+ public QValue create(double value) {
+ return new QValueImpl(Double.valueOf(value));
+ }
+
+ /**
+ * @see QValueFactory#create(long)
+ */
+ public QValue create(long value) {
+ return new QValueImpl(Long.valueOf(value));
+ }
+
+ /**
* @see QValueFactory#create(Name)
*/
public QValue create(Name value) {
@@ -265,6 +279,28 @@
}
/**
+ * @see QValue#getDouble()
+ */
+ public double getDouble() throws RepositoryException {
+ if (type == PropertyType.DOUBLE) {
+ return ((Double) val).doubleValue();
+ } else {
+ return Double.parseDouble(getString());
+ }
+ }
+
+ /**
+ * @see QValue#getLong()
+ */
+ public long getLong() throws RepositoryException {
+ if (type == PropertyType.LONG) {
+ return ((Long) val).longValue();
+ } else {
+ return Long.parseLong(getString());
+ }
+ }
+
+ /**
* @see QValue#getPath()
*/
public Path getPath() throws RepositoryException {
@@ -610,6 +646,20 @@
*/
public Calendar getCalendar() throws RepositoryException {
throw new UnsupportedOperationException();
+ }
+
+ /**
+ * @see QValue#getDouble()
+ */
+ public double getDouble() throws RepositoryException {
+ return Double.parseDouble(getString());
+ }
+
+ /**
+ * @see QValue#getLong()
+ */
+ public long getLong() throws RepositoryException {
+ return Long.parseLong(getString());
}
/**
Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/value/ValueFormat.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/value/ValueFormat.java?rev=587899&r1=587898&r2=587899&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/value/ValueFormat.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/value/ValueFormat.java Wed Oct 24 07:39:14 2007
@@ -57,6 +57,10 @@
}
} else if (jcrValue.getType() == PropertyType.DATE) {
return factory.create(jcrValue.getDate());
+ } else if (jcrValue.getType() == PropertyType.DOUBLE) {
+ return factory.create(jcrValue.getDouble());
+ } else if (jcrValue.getType() == PropertyType.LONG) {
+ return factory.create(jcrValue.getLong());
} else {
return getQValue(jcrValue.getString(), jcrValue.getType(), resolver, factory);
}
@@ -146,8 +150,6 @@
switch (propertyType) {
case PropertyType.STRING:
case PropertyType.BOOLEAN:
- case PropertyType.DOUBLE:
- case PropertyType.LONG:
case PropertyType.REFERENCE:
jcrValue = factory.createValue(qualifiedValue.getString(), propertyType);
break;
@@ -164,6 +166,12 @@
break;
case PropertyType.DATE:
jcrValue = factory.createValue(qualifiedValue.getCalendar());
+ break;
+ case PropertyType.DOUBLE:
+ jcrValue = factory.createValue(qualifiedValue.getDouble());
+ break;
+ case PropertyType.LONG:
+ jcrValue = factory.createValue(qualifiedValue.getLong());
break;
default:
throw new RepositoryException("illegal internal value type");
Modified: jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/QValue.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/QValue.java?rev=587899&r1=587898&r2=587899&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/QValue.java (original)
+++ jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/QValue.java Wed Oct 24 07:39:14 2007
@@ -83,20 +83,36 @@
public InputStream getStream() throws RepositoryException;
/**
- * Returns a <code>Name</code> representation of this value.
+ * Returns a <code>Calendar</code> representation of this value.
*
- * @return A <code>Name</code> representation of this value.
+ * @return A <code>Calendar</code> representation of this value.
* @throws RepositoryException if an error occurs.
*/
- public Name getName() throws RepositoryException;
+ public Calendar getCalendar() throws RepositoryException;
/**
- * Returns a <code>Calendar</code> representation of this value.
+ * Returns a <code>double</code> representation of this value.
*
- * @return A <code>Calendar</code> representation of this value.
+ * @return A <code>double</code> representation of this value.
* @throws RepositoryException if an error occurs.
*/
- public Calendar getCalendar() throws RepositoryException;
+ public double getDouble() throws RepositoryException;
+
+ /**
+ * Returns a <code>long</code> representation of this value.
+ *
+ * @return A <code>long</code> representation of this value.
+ * @throws RepositoryException if an error occurs.
+ */
+ public long getLong() throws RepositoryException;
+
+ /**
+ * Returns a <code>Name</code> representation of this value.
+ *
+ * @return A <code>Name</code> representation of this value.
+ * @throws RepositoryException if an error occurs.
+ */
+ public Name getName() throws RepositoryException;
/**
* Returns a <code>Path</code> representation of this value.
Modified: jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/QValueFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/QValueFactory.java?rev=587899&r1=587898&r2=587899&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/QValueFactory.java (original)
+++ jackrabbit/trunk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/QValueFactory.java Wed Oct 24 07:39:14 2007
@@ -51,6 +51,24 @@
public QValue create(Calendar value);
/**
+ * Create a new <code>QValue</code> with type {@link javax.jcr.PropertyType#DOUBLE}.
+ *
+ * @param value A <code>double</code> containing the value
+ * of the new <code>QValue</code>.
+ * @return a new <code>QValue</code>.
+ */
+ public QValue create(double value);
+
+ /**
+ * Create a new <code>QValue</code> with type {@link javax.jcr.PropertyType#LONG}.
+ *
+ * @param value A <code>long</code> containing the value
+ * of the new <code>QValue</code>.
+ * @return a new <code>QValue</code>.
+ */
+ public QValue create(long value);
+
+ /**
* Create a new <code>QValue</code> with type {@link javax.jcr.PropertyType#NAME}.
*
* @param value A non-null <code>Name</code>.