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);
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.