Author: vgritsenko
Date: Sun Sep 2 03:52:38 2007
New Revision: 571949
URL: http://svn.apache.org/viewvc?rev=571949&view=rev
Log:
avoid getData()
Modified:
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/MemValueIndexer.java
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/NameIndexer.java
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/ValueIndexer.java
Modified:
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/MemValueIndexer.java
URL:
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/MemValueIndexer.java?rev=571949&r1=571948&r2=571949&view=diff
==============================================================================
---
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/MemValueIndexer.java
(original)
+++
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/MemValueIndexer.java
Sun Sep 2 03:52:38 2007
@@ -269,7 +269,7 @@
for (; aLocatorIterator.hasNext(); ++aResultIndex) {
ValueLocator aLocator = (ValueLocator)
aLocatorIterator.next();
aResult[aResultIndex] = new IndexMatch(
- new Key(aLocator.getKey()),
aLocator.getPosition(), aLocator.getLength(), aLocator.getElementID(),
aLocator.getAttributeID());
+ aLocator.getKey(), aLocator.getPosition(),
aLocator.getLength(), aLocator.getElementID(), aLocator.getAttributeID());
}
}
} else {
@@ -288,7 +288,7 @@
for (; aLocatorIterator.hasNext(); ++aResultIndex)
{
ValueLocator aLocator = (ValueLocator)
aLocatorIterator.next();
aResult[aResultIndex] = new IndexMatch(
- new Key(aLocator.getKey()),
aLocator.getPosition(), aLocator.getLength(), aLocator.getElementID(),
aLocator.getAttributeID());
+ aLocator.getKey(),
aLocator.getPosition(), aLocator.getLength(), aLocator.getElementID(),
aLocator.getAttributeID());
}
}
}
@@ -1157,7 +1157,7 @@
for (; aLocatorIterator.hasNext(); ++theStartIndex) {
ValueLocator aLocator = (ValueLocator) aLocatorIterator.next();
theArray[theStartIndex] = new IndexMatch(
- new Key(aLocator.getKey()), aLocator.getPosition(),
aLocator.getLength(), aLocator.getElementID(), aLocator.getAttributeID());
+ aLocator.getKey(), aLocator.getPosition(),
aLocator.getLength(), aLocator.getElementID(), aLocator.getAttributeID());
}
}
@@ -1182,7 +1182,7 @@
for (; aLocatorIterator.hasNext(); ++theStartIndex) {
ValueLocator aLocator = (ValueLocator) aLocatorIterator.next();
theArray[theStartIndex] = new IndexMatch(
- new Key(aLocator.getKey()), aLocator.getPosition(),
aLocator.getLength(), aLocator.getElementID(), aLocator.getAttributeID());
+ aLocator.getKey(), aLocator.getPosition(),
aLocator.getLength(), aLocator.getElementID(), aLocator.getAttributeID());
}
return theStartIndex;
}
@@ -1225,9 +1225,11 @@
* @return true if this object is equal to theCompareTo Object, false
otherwise
*/
public boolean equals(Object theCompareTo) {
+ //noinspection SimplifiableIfStatement
if (theCompareTo instanceof EmptyValue) {
return true;
}
+
return theCompareTo.toString().length() == 0;
}
@@ -1323,6 +1325,32 @@
* the Collection.
*/
private class ValueLocator implements Comparable {
+
+ /**
+ * the key of the Document containing the value
+ */
+ private Key itsKey;
+
+ /**
+ * the value's position in the document stream
+ */
+ private final int itsPosition;
+
+ /**
+ * the value's length
+ */
+ private final int itsLength;
+
+ /**
+ * the ID of the Element containing the value
+ */
+ private final short itsElementID;
+
+ /**
+ * the ID of the Attribute containing the value
+ */
+ private final short itsAttributeID;
+
/**
* Creates a new object.
*
@@ -1337,7 +1365,7 @@
* instead of as a separate member.
*/
public ValueLocator(Key theKey, int thePosition, int theLength, short
theElementID, short theAttributeID) {
- itsKey = theKey.getData();
+ itsKey = theKey;
itsPosition = thePosition;
itsLength = theLength;
itsElementID = theElementID;
@@ -1349,7 +1377,7 @@
*
* @return the key of the Document containing the value
*/
- public byte[] getKey() {
+ public Key getKey() {
return itsKey;
}
@@ -1429,24 +1457,9 @@
ValueLocator aCompareTo = (ValueLocator) theObject;
// compare keys
- byte[] aCompareToKey = aCompareTo.itsKey;
-
- int aMaxLength = itsKey.length > aCompareToKey.length ?
aCompareToKey.length : itsKey.length;
-
- for (int anIndex = 0; anIndex < aMaxLength; ++anIndex) {
- byte aByteThis = itsKey[anIndex];
- byte aByteThat = aCompareToKey[anIndex];
-
- // compare bytes
- if (aByteThis != aByteThat) {
- return aByteThis > aByteThat ? 1 : -1;
- }
- }
-
- // comparison done if keys are not of equal length but initial
- // substrings are equal
- if (itsKey.length != aCompareToKey.length) {
- return itsKey.length > aCompareToKey.length ? 1 : -1;
+ int result = itsKey.compareTo(aCompareTo.itsKey);
+ if (result != 0) {
+ return result;
}
// compare position
@@ -1472,30 +1485,5 @@
// equal
return 0;
}
-
- /**
- * the key of the Document containing the value
- */
- private byte[] itsKey;
-
- /**
- * the value's position in the document stream
- */
- private final int itsPosition;
-
- /**
- * the value's length
- */
- private final int itsLength;
-
- /**
- * the ID of the Element containing the value
- */
- private final short itsElementID;
-
- /**
- * the ID of the Attribute containing the value
- */
- private final short itsAttributeID;
}
}
Modified:
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/NameIndexer.java
URL:
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/NameIndexer.java?rev=571949&r1=571948&r2=571949&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/NameIndexer.java
(original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/NameIndexer.java
Sun Sep 2 03:52:38 2007
@@ -143,12 +143,10 @@
}
private IndexMatch getIndexMatch(Value v) {
- byte[] b = v.getData();
- int l = b.length - 5;
- Key key = new Key(b, 0, l);
-
- short elemID = (short) ((b[l + 1] << 8) | b[l + 2]);
- short attrID = (short) ((b[l + 3] << 8) | b[l + 4]);
+ int l = v.getLength() - 5;
+ Key key = v.keyAt(0, l);
+ short elemID = v.shortAt(l + 1);
+ short attrID = v.shortAt(l + 3);
return new IndexMatch(key, elemID, attrID);
}
Modified:
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/ValueIndexer.java
URL:
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/ValueIndexer.java?rev=571949&r1=571948&r2=571949&view=diff
==============================================================================
---
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/ValueIndexer.java
(original)
+++
xml/xindice/trunk/java/src/org/apache/xindice/core/indexer/ValueIndexer.java
Sun Sep 2 03:52:38 2007
@@ -380,14 +380,13 @@
}
private IndexMatch getIndexMatch(Value v) {
- byte[] b = v.getData();
- int l = b.length - 13;
- Key key = new Key(b, 0, l);
+ int l = v.getLength() - 13;
- int pos = ((b[l + 1] << 24) | (b[l + 2] << 16) | (b[l + 3] << 8) | b[l
+ 4]);
- int len = ((b[l + 5] << 24) | (b[l + 6] << 16) | (b[l + 7] << 8) | b[l
+ 8]);
- short elemID = (short) ((b[l + 9] << 8) | b[l + 10]);
- short attrID = (short) ((b[l + 11] << 8) | b[l + 12]);
+ Key key = v.keyAt(0, l);
+ int pos = v.intAt(l + 1);
+ int len = v.intAt(l + 5);
+ short elemID = v.shortAt(l + 9);
+ short attrID = v.shortAt(l + 11);
return new IndexMatch(key, pos, len, elemID, attrID);
}