Author: jukka Date: Mon Jun 25 06:28:21 2007 New Revision: 550493 URL: http://svn.apache.org/viewvc?view=rev&rev=550493 Log: JCR-926: Applied patch from Thomas Mueller to clean up the InternalValue class. Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/PropertyImpl.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ValueConstraint.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/BundleBinding.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/NodePropBundle.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/DatabasePersistenceManager.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemPersistenceManager.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/obj/ObjectPersistenceManager.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/Serializer.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/xml/XMLPersistenceManager.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/NodeIndexer.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/TextExtractorFilter.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/TextFilterExtractor.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/PropertyState.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/XAItemStateManager.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/value/InternalValue.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalFrozenNodeImpl.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalFrozenVHImpl.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/xml/WorkspaceImporter.java Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java?view=diff&rev=550493&r1=550492&r2=550493 ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/BatchedItemOperations.java Mon Jun 25 06:28:21 2007 @@ -331,7 +331,7 @@ InternalValue[] newVals = new InternalValue[values.length]; for (int i = 0; i < values.length; i++) { InternalValue val = values[i]; - UUID original = (UUID) val.internalValue(); + UUID original = val.getUUID(); UUID adjusted = refTracker.getMappedUUID(original); if (adjusted != null) { newVals[i] = InternalValue.create(adjusted); @@ -1314,7 +1314,7 @@ log.debug(msg); throw new RepositoryException(msg, ise); } - boolean checkedOut = ((Boolean) propState.getValues()[0].internalValue()).booleanValue(); + boolean checkedOut = propState.getValues()[0].getBoolean(); if (!checkedOut) { throw new VersionException(safeGetJCRPath(nodePath) + " is checked-in"); } Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java?view=diff&rev=550493&r1=550492&r2=550493 ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemImpl.java Mon Jun 25 06:28:21 2007 @@ -587,7 +587,7 @@ boolean satisfied = false; String constraintViolationMsg = null; try { - UUID targetUUID = (UUID) values[i].internalValue(); + UUID targetUUID = values[i].getUUID(); Node targetNode = session.getNodeByUUID(targetUUID); /** * constraints are OR-ed, i.e. at least one Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/PropertyImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/PropertyImpl.java?view=diff&rev=550493&r1=550492&r2=550493 ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/PropertyImpl.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/PropertyImpl.java Mon Jun 25 06:28:21 2007 @@ -21,11 +21,8 @@ import org.apache.jackrabbit.core.state.PropertyState; import org.apache.jackrabbit.core.value.BLOBFileValue; import org.apache.jackrabbit.core.value.InternalValue; -import org.apache.jackrabbit.name.NoPrefixDeclaredException; import org.apache.jackrabbit.name.Path; import org.apache.jackrabbit.name.QName; -import org.apache.jackrabbit.name.PathFormat; -import org.apache.jackrabbit.name.NameFormat; import org.apache.jackrabbit.uuid.UUID; import org.apache.jackrabbit.value.BooleanValue; import org.apache.jackrabbit.value.DateValue; @@ -163,6 +160,7 @@ * @see javax.jcr.Property#getLengths() */ protected long getLength(InternalValue value) throws RepositoryException { + // TODO maybe move method to InternalValue switch (value.getType()) { case PropertyType.STRING: case PropertyType.LONG: @@ -170,15 +168,15 @@ return value.toString().length(); case PropertyType.NAME: - QName name = (QName) value.internalValue(); + QName name = value.getQName(); return session.getJCRName(name).length(); case PropertyType.PATH: - Path path = (Path) value.internalValue(); + Path path = value.getPath(); return session.getJCRPath(path).length(); case PropertyType.BINARY: - BLOBFileValue blob = (BLOBFileValue) value.internalValue(); + BLOBFileValue blob = value.getBLOBFileValue(); return blob.getLength(); default: @@ -276,7 +274,7 @@ if (old != null && old.getType() == PropertyType.BINARY) { // make sure temporarily allocated data is discarded // before overwriting it - ((BLOBFileValue) old.internalValue()).discard(); + old.getBLOBFileValue().discard(); } } } @@ -541,7 +539,7 @@ InternalValue val = state.getValues()[0]; int type = val.getType(); if (type == PropertyType.LONG) { - return ((Long) val.internalValue()).longValue(); + return val.getLong(); } // not a LONG value, delegate conversion to Value object return val.toJCRValue(session.getNamespaceResolver()).getLong(); @@ -565,7 +563,7 @@ InternalValue val = state.getValues()[0]; int type = val.getType(); if (type == PropertyType.DOUBLE) { - return ((Double) val.internalValue()).doubleValue(); + return val.getDouble(); } // not a DOUBLE value, delegate conversion to Value object return val.toJCRValue(session.getNamespaceResolver()).getDouble(); @@ -589,7 +587,7 @@ InternalValue val = state.getValues()[0]; int type = val.getType(); if (type == PropertyType.DATE) { - return (Calendar) val.internalValue(); + return val.getDate(); } // not a DATE value, delegate conversion to Value object return val.toJCRValue(session.getNamespaceResolver()).getDate(); @@ -613,7 +611,7 @@ InternalValue val = state.getValues()[0]; int type = val.getType(); if (type == PropertyType.BOOLEAN) { - return ((Boolean) val.internalValue()).booleanValue(); + return val.getBoolean(); } // not a BOOLEAN value, delegate conversion to Value object return val.toJCRValue(session.getNamespaceResolver()).getBoolean(); @@ -636,7 +634,7 @@ InternalValue val = state.getValues()[0]; if (val.getType() == PropertyType.REFERENCE) { // reference, i.e. target UUID - UUID targetUUID = (UUID) val.internalValue(); + UUID targetUUID = val.getUUID(); return (Node) itemMgr.getItem(new NodeId(targetUUID)); } else { throw new ValueFormatException("property must be of type REFERENCE"); Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ValueConstraint.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ValueConstraint.java?view=diff&rev=550493&r1=550492&r2=550493 ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ValueConstraint.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ValueConstraint.java Mon Jun 25 06:28:21 2007 @@ -158,14 +158,6 @@ } } - void check(Boolean bool) throws ConstraintViolationException { - if (bool == null) { - throw new ConstraintViolationException("null value does not satisfy the constraint '" - + definition + "'"); - } - check(bool.booleanValue()); - } - void check(boolean bool) throws ConstraintViolationException { if (bool != reqBool) { throw new ConstraintViolationException("'" + bool @@ -180,7 +172,7 @@ } switch (value.getType()) { case PropertyType.BOOLEAN: - check((Boolean) value.internalValue()); + check(value.getBoolean()); return; default: @@ -307,22 +299,6 @@ } } - void check(Double number) throws ConstraintViolationException { - if (number == null) { - throw new ConstraintViolationException("null value does not satisfy the constraint '" - + definition + "'"); - } - check(number.doubleValue()); - } - - void check(Long number) throws ConstraintViolationException { - if (number == null) { - throw new ConstraintViolationException("null value does not satisfy the constraint '" - + definition + "'"); - } - check(number.doubleValue()); - } - void check(double number) throws ConstraintViolationException { if (lowerLimit != null) { if (lowerInclusive) { @@ -363,15 +339,15 @@ } switch (value.getType()) { case PropertyType.LONG: - check((Long) value.internalValue()); + check(value.getLong()); return; case PropertyType.DOUBLE: - check((Double) value.internalValue()); + check(value.getDouble()); return; case PropertyType.BINARY: - BLOBFileValue blob = (BLOBFileValue) value.internalValue(); + BLOBFileValue blob = value.getBLOBFileValue(); long length = blob.getLength(); if (length != -1) { check(length); @@ -504,7 +480,7 @@ } switch (value.getType()) { case PropertyType.DATE: - check((Calendar) value.internalValue()); + check(value.getDate()); return; default: @@ -566,7 +542,7 @@ } switch (value.getType()) { case PropertyType.PATH: - Path p = (Path) value.internalValue(); + Path p = value.getPath(); // normalize paths before comparing them Path p0, p1; try { @@ -645,7 +621,7 @@ } switch (value.getType()) { case PropertyType.NAME: - QName n = (QName) value.internalValue(); + QName n = value.getQName(); if (!name.equals(n)) { throw new ConstraintViolationException(n + " does not satisfy the constraint '" Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/BundleBinding.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/BundleBinding.java?view=diff&rev=550493&r1=550492&r2=550493 ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/BundleBinding.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/BundleBinding.java Mon Jun 25 06:28:21 2007 @@ -549,7 +549,7 @@ case PropertyType.BINARY: // special handling required for binary value: // spool binary value to file in blob store - BLOBFileValue blobVal = (BLOBFileValue) val.internalValue(); + BLOBFileValue blobVal = val.getBLOBFileValue(); long size = blobVal.getLength(); if (size < 0) { log.warn("Blob has negative size. Potential loss of data. " + @@ -633,19 +633,19 @@ } break; case PropertyType.DOUBLE: - out.writeDouble(((Double) val.internalValue()).doubleValue()); + out.writeDouble(val.getDouble()); break; case PropertyType.LONG: - out.writeLong(((Long) val.internalValue()).longValue()); + out.writeLong(val.getLong()); break; case PropertyType.BOOLEAN: - out.writeBoolean(((Boolean) val.internalValue()).booleanValue()); + out.writeBoolean(val.getBoolean()); break; case PropertyType.NAME: - writeQName(out, (QName) val.internalValue()); + writeQName(out, val.getQName()); break; case PropertyType.REFERENCE: - writeUUID(out, (UUID) val.internalValue()); + writeUUID(out, val.getUUID()); break; default: // because writeUTF(String) has a size limit of 64k, Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java?view=diff&rev=550493&r1=550492&r2=550493 ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ItemStateBinding.java Mon Jun 25 06:28:21 2007 @@ -377,7 +377,7 @@ try { // special handling required for binary value: // spool binary value to file in blob store - BLOBFileValue blobVal = (BLOBFileValue) val.internalValue(); + BLOBFileValue blobVal = val.getBLOBFileValue(); long size = blobVal.getLength(); if (size > minBlobSize) { out.writeInt(-1); @@ -436,19 +436,19 @@ } break; case PropertyType.DOUBLE: - out.writeDouble(((Double) val.internalValue()).doubleValue()); + out.writeDouble(val.getDouble()); break; case PropertyType.LONG: - out.writeLong(((Long) val.internalValue()).longValue()); + out.writeLong(val.getLong()); break; case PropertyType.BOOLEAN: - out.writeBoolean(((Boolean) val.internalValue()).booleanValue()); + out.writeBoolean(val.getBoolean()); break; case PropertyType.NAME: - writeQName(out, (QName) val.internalValue()); + writeQName(out, val.getQName()); break; case PropertyType.REFERENCE: - writeUUID(out, (UUID) val.internalValue()); + writeUUID(out, val.getUUID()); break; default: // because writeUTF(String) has a size limit of 64k, Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/NodePropBundle.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/NodePropBundle.java?view=diff&rev=550493&r1=550492&r2=550493 ============================================================================== --- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/NodePropBundle.java (original) +++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/NodePropBundle.java Mon Jun 25 06:28:21 2007 @@ -29,7 +29,6 @@ import org.apache.jackrabbit.core.PropertyId; import org.apache.jackrabbit.core.persistence.PersistenceManager; import org.apache.jackrabbit.core.value.InternalValue; -import org.apache.jackrabbit.core.value.BLOBFileValue; import org.apache.jackrabbit.core.state.PropertyState; import org.apache.jackrabbit.core.state.NodeState; import org.apache.jackrabbit.core.nodetype.NodeDefId; @@ -683,9 +682,7 @@ if (type == PropertyType.BINARY) { // destroy binary property values for (int i=0; i