You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by mr...@apache.org on 2007/02/28 16:01:13 UTC
svn commit: r512788 -
/jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/ValueFactoryImpl.java
Author: mreutegg
Date: Wed Feb 28 07:01:12 2007
New Revision: 512788
URL: http://svn.apache.org/viewvc?view=rev&rev=512788
Log:
- spi2jcr should have its own ValueFactoryImpl
Added:
jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/ValueFactoryImpl.java (with props)
Added: jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/ValueFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/ValueFactoryImpl.java?view=auto&rev=512788
==============================================================================
--- jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/ValueFactoryImpl.java (added)
+++ jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/ValueFactoryImpl.java Wed Feb 28 07:01:12 2007
@@ -0,0 +1,135 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.spi2jcr;
+
+import javax.jcr.Value;
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+import javax.jcr.ValueFormatException;
+import javax.jcr.PropertyType;
+import javax.jcr.ValueFactory;
+import java.util.Calendar;
+import java.io.InputStream;
+
+/**
+ * <code>ValueFactoryImpl</code>...
+ * TODO: copied from spi2dav, move this class to spi-commons?
+ */
+public class ValueFactoryImpl implements ValueFactory {
+
+ private static final ValueFactory factory = new ValueFactoryImpl();
+
+ /**
+ * Delegatee for all calls except for REFERENCE values.
+ */
+ private final ValueFactory commonsFactory = org.apache.jackrabbit.value.ValueFactoryImpl.getInstance();
+
+ /**
+ * Constructs a <code>ValueFactory</code> object.
+ */
+ private ValueFactoryImpl() {
+ }
+
+ public static ValueFactory getInstance() {
+ return factory;
+ }
+
+ public Value createValue(Node value) throws RepositoryException {
+ return new ReferenceValue(value);
+ }
+
+ public Value createValue(String string) {
+ return commonsFactory.createValue(string);
+ }
+
+ public Value createValue(String value, int type) throws ValueFormatException {
+ Value val;
+ switch (type) {
+ case PropertyType.REFERENCE:
+ val = ReferenceValue.valueOf(value);
+ break;
+ default:
+ val = commonsFactory.createValue(value, type);
+ }
+ return val;
+ }
+
+ public Value createValue(long l) {
+ return commonsFactory.createValue(l);
+ }
+
+ public Value createValue(double v) {
+ return commonsFactory.createValue(v);
+ }
+
+ public Value createValue(boolean b) {
+ return commonsFactory.createValue(b);
+ }
+
+ public Value createValue(Calendar calendar) {
+ return commonsFactory.createValue(calendar);
+ }
+
+ public Value createValue(InputStream inputStream) {
+ return commonsFactory.createValue(inputStream);
+ }
+
+ /**
+ * A <code>ReferenceValue</code> provides an implementation
+ * of the <code>Value</code> interface representing a <code>REFERENCE</code> value
+ * (a jcr:uuid property of an existing, referenceable node).
+ */
+ private static class ReferenceValue extends org.apache.jackrabbit.value.ReferenceValue {
+
+ private ReferenceValue(String uuid) {
+ super(uuid);
+ }
+
+ /**
+ * Constructs a <code>ReferenceValue</code> object representing the UUID of
+ * an existing node.
+ *
+ * @param target the node to be referenced
+ * @throws IllegalArgumentException If <code>target</code> is nonreferenceable.
+ * @throws javax.jcr.RepositoryException If another error occurs.
+ */
+ private ReferenceValue(Node target) throws RepositoryException {
+ super(target);
+ }
+
+ /**
+ * Returns a new <code>ReferenceValue</code> initialized to the value
+ * represented by the specified <code>String</code>.
+ * <p/>
+ * The specified <code>String</code> must denote the jcr:uuid property
+ * of an existing node.
+ *
+ * @param s the string to be parsed.
+ * @return a newly constructed <code>ReferenceValue</code> representing
+ * the specified value.
+ * @throws javax.jcr.ValueFormatException If the <code>String</code> is
+ * null or empty String.
+ */
+ public static org.apache.jackrabbit.value.ReferenceValue valueOf(String s) throws ValueFormatException {
+ if (s != null && !"".equals(s)) {
+ return new ReferenceValue(s);
+ } else {
+ throw new ValueFormatException("Invalid format for jcr:uuid");
+ }
+ }
+ }
+}
\ No newline at end of file
Propchange: jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/ValueFactoryImpl.java
------------------------------------------------------------------------------
svn:eol-style = native