You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2012/10/22 16:41:26 UTC

svn commit: r1400898 [2/2] - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/api/ main/java/org/apache/jackrabbit/oak/core/ main/java/org/apache/jackrabbit/oak/plugins/identifier/ main/java/org/apache/jackrabbit/oak/plugins/m...

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueFactoryImpl.java?rev=1400898&r1=1400897&r2=1400898&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueFactoryImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueFactoryImpl.java Mon Oct 22 14:41:25 2012
@@ -39,7 +39,13 @@ import org.apache.jackrabbit.oak.api.Pro
 import org.apache.jackrabbit.oak.api.PropertyValue;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager;
-import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
+import org.apache.jackrabbit.oak.plugins.memory.BinaryPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.BooleanPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.DecimalPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.DoublePropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.GenericPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.LongPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.StringPropertyState;
 import org.apache.jackrabbit.oak.spi.query.PropertyValues;
 import org.apache.jackrabbit.util.ISO8601;
 import org.slf4j.Logger;
@@ -108,7 +114,7 @@ public class ValueFactoryImpl implements
 
     @Override
     public Value createValue(String value) {
-        return new ValueImpl(PropertyStates.stringProperty("", value), namePathMapper);
+        return new ValueImpl(StringPropertyState.stringProperty("", value), namePathMapper);
     }
 
     @Override
@@ -138,22 +144,22 @@ public class ValueFactoryImpl implements
 
     @Override
     public Value createValue(long value) {
-        return new ValueImpl(PropertyStates.longProperty("", value), namePathMapper);
+        return new ValueImpl(LongPropertyState.createLongProperty("", value), namePathMapper);
     }
 
     @Override
     public Value createValue(double value) {
-        return new ValueImpl(PropertyStates.doubleProperty("", value), namePathMapper);
+        return new ValueImpl(DoublePropertyState.doubleProperty("", value), namePathMapper);
     }
 
     @Override
     public Value createValue(Calendar value) {
-        return new ValueImpl(PropertyStates.dateProperty("", value), namePathMapper);
+        return new ValueImpl(LongPropertyState.createDateProperty("", value), namePathMapper);
     }
 
     @Override
     public Value createValue(boolean value) {
-        return new ValueImpl(PropertyStates.booleanProperty("", value), namePathMapper);
+        return new ValueImpl(BooleanPropertyState.booleanProperty("", value), namePathMapper);
     }
 
     @Override
@@ -164,13 +170,13 @@ public class ValueFactoryImpl implements
     @Override
     public Value createValue(Node value, boolean weak) throws RepositoryException {
         return weak
-            ? new ValueImpl(PropertyStates.weakreferenceProperty("", value.getUUID()), namePathMapper)
-            : new ValueImpl(PropertyStates.referenceProperty("", value.getUUID()), namePathMapper);
+            ? new ValueImpl(GenericPropertyState.weakreferenceProperty("", value.getUUID()), namePathMapper)
+            : new ValueImpl(GenericPropertyState.referenceProperty("", value.getUUID()), namePathMapper);
     }
 
     @Override
     public Value createValue(BigDecimal value) {
-        return new ValueImpl(PropertyStates.decimalProperty("", value), namePathMapper);
+        return new ValueImpl(DecimalPropertyState.decimalProperty("", value), namePathMapper);
     }
 
     @Override
@@ -185,7 +191,7 @@ public class ValueFactoryImpl implements
                 case PropertyType.STRING:
                     return createValue(value);
                 case PropertyType.BINARY:
-                    pv = PropertyStates.binaryProperty("", value);
+                    pv = BinaryPropertyState.binaryProperty("", value);
                     break;
                 case PropertyType.LONG:
                     return createValue(Conversions.convert(value).toLong());
@@ -195,7 +201,7 @@ public class ValueFactoryImpl implements
                     if (ISO8601.parse(value) == null) {
                         throw new ValueFormatException("Invalid date " + value);
                     }
-                    pv = PropertyStates.dateProperty("", value);
+                    pv = LongPropertyState.createDateProperty("", value);
                     break;
                 case PropertyType.BOOLEAN:
                     return createValue(Conversions.convert(value).toBoolean());
@@ -204,7 +210,7 @@ public class ValueFactoryImpl implements
                     if (oakName == null) {
                         throw new ValueFormatException("Invalid name: " + value);
                     }
-                    pv = PropertyStates.nameProperty("", oakName);
+                    pv = GenericPropertyState.nameProperty("", oakName);
                     break;
                 case PropertyType.PATH:
                     String oakValue = value;
@@ -216,23 +222,23 @@ public class ValueFactoryImpl implements
                     if (oakValue == null) {
                         throw new ValueFormatException("Invalid path: " + value);
                     }
-                    pv = PropertyStates.pathProperty("", oakValue);
+                    pv = GenericPropertyState.pathProperty("", oakValue);
                     break;
                 case PropertyType.REFERENCE:
                     if (!IdentifierManager.isValidUUID(value)) {
                         throw new ValueFormatException("Invalid reference value " + value);
                     }
-                    pv = PropertyStates.referenceProperty("", value);
+                    pv = GenericPropertyState.referenceProperty("", value);
                     break;
                 case PropertyType.WEAKREFERENCE:
                     if (!IdentifierManager.isValidUUID(value)) {
                         throw new ValueFormatException("Invalid weak reference value " + value);
                     }
-                    pv = PropertyStates.weakreferenceProperty("", value);
+                    pv = GenericPropertyState.weakreferenceProperty("", value);
                     break;
                 case PropertyType.URI:
                     new URI(value);
-                    pv = PropertyStates.uriProperty("", value);
+                    pv = GenericPropertyState.uriProperty("", value);
                     break;
                 case PropertyType.DECIMAL:
                     return createValue(Conversions.convert(value).toDecimal());
@@ -260,7 +266,7 @@ public class ValueFactoryImpl implements
 
     private ValueImpl createBinaryValue(InputStream value) throws IOException {
         Blob blob = contentSession.createBlob(value);
-        return new ValueImpl(PropertyStates.binaryProperty("", blob), namePathMapper);
+        return new ValueImpl(BinaryPropertyState.binaryProperty("", blob), namePathMapper);
     }
 
     //------------------------------------------------------------< ErrorValue >---

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java?rev=1400898&r1=1400897&r2=1400898&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/query/PropertyValues.java Mon Oct 22 14:41:25 2012
@@ -30,7 +30,14 @@ import org.apache.jackrabbit.oak.api.Pro
 import org.apache.jackrabbit.oak.api.PropertyValue;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
-import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
+import org.apache.jackrabbit.oak.plugins.memory.BinaryPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.BooleanPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.DecimalPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.DoublePropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.GenericPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.LongPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.MultiStringPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.StringPropertyState;
 
 /**
  * Utility class for creating {@link PropertyValue} instances.
@@ -61,69 +68,67 @@ public final class PropertyValues {
 
     @Nonnull
     public static PropertyValue newString(String value) {
-        return new PropertyStateValue(PropertyStates.stringProperty("", value));
+        return new PropertyStateValue(StringPropertyState.stringProperty("", value));
     }
 
     @Nonnull
     public static PropertyValue newString(Iterable<String> value) {
-        return new PropertyStateValue(PropertyStates.stringProperty("", value));
+        return new PropertyStateValue(MultiStringPropertyState.stringProperty("", value));
     }
 
     @Nonnull
     public static PropertyValue newLong(Long value) {
-        return new PropertyStateValue(PropertyStates.longProperty("", value));
+        return new PropertyStateValue(LongPropertyState.createLongProperty("", value));
     }
 
     @Nonnull
     public static PropertyValue newDouble(Double value) {
-        return new PropertyStateValue(PropertyStates.doubleProperty("", value));
+        return new PropertyStateValue(DoublePropertyState.doubleProperty("", value));
     }
 
     @Nonnull
     public static PropertyValue newDecimal(BigDecimal value) {
-        return new PropertyStateValue(PropertyStates.decimalProperty("", value));
+        return new PropertyStateValue(DecimalPropertyState.decimalProperty("", value));
     }
 
     @Nonnull
     public static PropertyValue newBoolean(boolean value) {
-        return new PropertyStateValue(PropertyStates.booleanProperty("", value));
+        return new PropertyStateValue(BooleanPropertyState.booleanProperty("", value));
     }
 
     @Nonnull
     public static PropertyValue newDate(String value) {
-        return new PropertyStateValue(PropertyStates.dateProperty("", value));
+        return new PropertyStateValue(LongPropertyState.createDateProperty("", value));
     }
 
     @Nonnull
     public static PropertyValue newName(String value) {
-        return new PropertyStateValue(PropertyStates.nameProperty("", value));
+        return new PropertyStateValue(GenericPropertyState.nameProperty("", value));
     }
 
     @Nonnull
     public static PropertyValue newPath(String value) {
-        return new PropertyStateValue(PropertyStates.pathProperty("", value));
+        return new PropertyStateValue(GenericPropertyState.pathProperty("", value));
     }
 
     @Nonnull
     public static PropertyValue newReference(String value) {
-        return new PropertyStateValue(PropertyStates.referenceProperty("",
-                value));
+        return new PropertyStateValue(GenericPropertyState.referenceProperty("", value));
     }
 
     @Nonnull
     public static PropertyValue newWeakReference(String value) {
-        return new PropertyStateValue(PropertyStates.weakreferenceProperty("",
-                value));
+        return new PropertyStateValue(GenericPropertyState.weakreferenceProperty("", value));
     }
 
     @Nonnull
     public static PropertyValue newUri(String value) {
-        return new PropertyStateValue(PropertyStates.uriProperty("", value));
+        return new PropertyStateValue(GenericPropertyState.uriProperty("", value));
     }
 
     @Nonnull
     public static PropertyValue newBinary(byte[] value) {
-        return new PropertyStateValue(PropertyStates.binaryProperty("", value));
+        return new PropertyStateValue(BinaryPropertyState.binaryProperty("", value));
     }
 
     // --

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/TreeImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/TreeImplTest.java?rev=1400898&r1=1400897&r2=1400898&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/TreeImplTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/TreeImplTest.java Mon Oct 22 14:41:25 2012
@@ -28,7 +28,7 @@ import org.apache.jackrabbit.oak.api.Pro
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Tree.Status;
-import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
+import org.apache.jackrabbit.oak.plugins.memory.LongPropertyState;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -119,9 +119,9 @@ public class TreeImplTest {
         Tree tree = root.getTree("/");
 
         Set<PropertyState> expectedProperties = Sets.newHashSet(
-            PropertyStates.longProperty("a", 1),
-            PropertyStates.longProperty("b", 2),
-            PropertyStates.longProperty("c", 3));
+                LongPropertyState.createLongProperty("a", 1L),
+                LongPropertyState.createLongProperty("b", 2L),
+                LongPropertyState.createLongProperty("c", 3L));
 
         Iterable<? extends PropertyState> properties = tree.getProperties();
         for (PropertyState property : properties) {

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/JsopDiffTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/JsopDiffTest.java?rev=1400898&r1=1400897&r2=1400898&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/JsopDiffTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/JsopDiffTest.java Mon Oct 22 14:41:25 2012
@@ -18,8 +18,11 @@ package org.apache.jackrabbit.oak.kernel
 
 import com.google.common.collect.ImmutableMap;
 import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.BooleanPropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.DoublePropertyState;
+import org.apache.jackrabbit.oak.plugins.memory.LongPropertyState;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState;
-import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
+import org.apache.jackrabbit.oak.plugins.memory.StringPropertyState;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.junit.Test;
 
@@ -30,22 +33,22 @@ public class JsopDiffTest {
     @Test
     public void testPropertyChanges() {
         JsopDiff diff;
-        PropertyState before = PropertyStates.stringProperty("foo", "bar");
+        PropertyState before = StringPropertyState.stringProperty("foo", "bar");
 
         diff = new JsopDiff(null);
         diff.propertyAdded(before);
         assertEquals("^\"/foo\":\"bar\"", diff.toString());
 
         diff = new JsopDiff(null);
-        diff.propertyChanged(before, PropertyStates.longProperty("foo", 123L));
+        diff.propertyChanged(before, LongPropertyState.createLongProperty("foo", 123L));
         assertEquals("^\"/foo\":123", diff.toString());
 
         diff = new JsopDiff(null);
-        diff.propertyChanged(before, PropertyStates.doubleProperty("foo", 1.23));
+        diff.propertyChanged(before, DoublePropertyState.doubleProperty("foo", 1.23));
         assertEquals("^\"/foo\":\"dou:1.23\"", diff.toString()); // TODO: 1.23?
 
         diff = new JsopDiff(null);
-        diff.propertyChanged(before, PropertyStates.booleanProperty("foo", true));
+        diff.propertyChanged(before, BooleanPropertyState.booleanProperty("foo", true));
         assertEquals("^\"/foo\":true", diff.toString());
 
         diff = new JsopDiff(null);
@@ -59,7 +62,7 @@ public class JsopDiffTest {
         NodeState before = MemoryNodeState.EMPTY_NODE;
         NodeState after = new MemoryNodeState(
                 ImmutableMap.<String, PropertyState>of(
-                        "a", PropertyStates.longProperty("a", 1L)),
+                        "a", LongPropertyState.createLongProperty("a", 1L)),
                 ImmutableMap.of(
                         "x", MemoryNodeState.EMPTY_NODE));
 

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java?rev=1400898&r1=1400897&r2=1400898&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java Mon Oct 22 14:41:25 2012
@@ -34,9 +34,9 @@ public class MemoryNodeBuilderTest {
 
     private static final NodeState BASE = new MemoryNodeState(
             ImmutableMap.<String, PropertyState>of(
-                    "a", PropertyStates.longProperty("a", 1L),
-                    "b", PropertyStates.longProperty("b", 2L),
-                    "c", PropertyStates.longProperty("c", 3L)),
+                    "a", LongPropertyState.createLongProperty("a", 1L),
+                    "b", LongPropertyState.createLongProperty("b", 2L),
+                    "c", LongPropertyState.createLongProperty("c", 3L)),
             ImmutableMap.of(
                     "x", MemoryNodeState.EMPTY_NODE,
                     "y", MemoryNodeState.EMPTY_NODE,

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilderTest.java?rev=1400898&r1=1400897&r2=1400898&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryPropertyBuilderTest.java Mon Oct 22 14:41:25 2012
@@ -31,10 +31,10 @@ public class MemoryPropertyBuilderTest {
     public void testStringProperty() {
         PropertyBuilder<String> builder = MemoryPropertyBuilder.create(Type.STRING);
         builder.setName("foo").setValue("bar");
-        assertEquals(PropertyStates.stringProperty("foo", "bar"),
+        assertEquals(StringPropertyState.stringProperty("foo", "bar"),
                 builder.getPropertyState());
 
-        assertEquals(PropertyStates.stringProperty("foo", Arrays.asList("bar")),
+        assertEquals(MultiStringPropertyState.stringProperty("foo", Arrays.asList("bar")),
                 builder.getPropertyState(true));
     }
 
@@ -42,10 +42,10 @@ public class MemoryPropertyBuilderTest {
     public void testLongProperty() {
         PropertyBuilder<Long> builder = MemoryPropertyBuilder.create(Type.LONG);
         builder.setName("foo").setValue(42L);
-        assertEquals(PropertyStates.longProperty("foo", 42L),
+        assertEquals(LongPropertyState.createLongProperty("foo", 42L),
                 builder.getPropertyState());
 
-        assertEquals(PropertyStates.longProperty("foo", Arrays.asList(42L)),
+        assertEquals(MultiLongPropertyState.createLongProperty("foo", Arrays.asList(42L)),
                 builder.getPropertyState(true));
     }
 
@@ -55,56 +55,56 @@ public class MemoryPropertyBuilderTest {
         builder.setName("foo")
                 .addValue("one")
                 .addValue("two");
-        assertEquals(PropertyStates.stringProperty("foo", Arrays.asList("one", "two")),
+        assertEquals(MultiStringPropertyState.stringProperty("foo", Arrays.asList("one", "two")),
                 builder.getPropertyState());
     }
 
     @Test
     public void testAssignFromLong() {
-        PropertyState source = PropertyStates.longProperty("foo", 42);
+        PropertyState source = LongPropertyState.createLongProperty("foo", 42L);
         PropertyBuilder<String> builder = MemoryPropertyBuilder.create(Type.STRING);
         builder.assignFrom(source);
-        assertEquals(PropertyStates.stringProperty("foo", "42"),
+        assertEquals(StringPropertyState.stringProperty("foo", "42"),
                 builder.getPropertyState());
     }
 
     @Test
     public void testAssignFromString() {
-        PropertyState source = PropertyStates.stringProperty("foo", "42");
+        PropertyState source = StringPropertyState.stringProperty("foo", "42");
         PropertyBuilder<Long> builder = MemoryPropertyBuilder.create(Type.LONG);
         builder.assignFrom(source);
-        assertEquals(PropertyStates.longProperty("foo", 42),
+        assertEquals(LongPropertyState.createLongProperty("foo", 42L),
                 builder.getPropertyState());
     }
 
     @Test(expected = NumberFormatException.class)
     public void testAssignFromStringNumberFormatException() {
-        PropertyState source = PropertyStates.stringProperty("foo", "bar");
+        PropertyState source = StringPropertyState.stringProperty("foo", "bar");
         PropertyBuilder<Long> builder = MemoryPropertyBuilder.create(Type.LONG);
         builder.assignFrom(source);
     }
 
     @Test
     public void testAssignFromLongs() {
-        PropertyState source = PropertyStates.longProperty("foo", Arrays.asList(1L, 2L, 3L));
+        PropertyState source = MultiLongPropertyState.createLongProperty("foo", Arrays.asList(1L, 2L, 3L));
         PropertyBuilder<String> builder = MemoryPropertyBuilder.create(Type.STRING);
         builder.assignFrom(source);
-        assertEquals(PropertyStates.stringProperty("foo", Arrays.asList("1", "2", "3")),
+        assertEquals(MultiStringPropertyState.stringProperty("foo", Arrays.asList("1", "2", "3")),
                 builder.getPropertyState());
     }
 
     @Test
     public void testAssignFromStrings() {
-        PropertyState source = PropertyStates.stringProperty("foo", Arrays.asList("1", "2", "3"));
+        PropertyState source = MultiStringPropertyState.stringProperty("foo", Arrays.asList("1", "2", "3"));
         PropertyBuilder<Long> builder = MemoryPropertyBuilder.create(Type.LONG);
         builder.assignFrom(source);
-        assertEquals(PropertyStates.longProperty("foo", Arrays.asList(1L, 2L, 3L)),
+        assertEquals(MultiLongPropertyState.createLongProperty("foo", Arrays.asList(1L, 2L, 3L)),
                 builder.getPropertyState());
     }
 
     @Test
     public void testAssignInvariant() {
-        PropertyState source = PropertyStates.stringProperty("source", Arrays.asList("1", "2", "3"));
+        PropertyState source = MultiStringPropertyState.stringProperty("source", Arrays.asList("1", "2", "3"));
         PropertyBuilder<String> builder = MemoryPropertyBuilder.create(Type.STRING);
         builder.assignFrom(source);
         assertEquals(source, builder.getPropertyState(true));