public void append(ValueStoreBase newVal) { for (int i = 0; i < newVal.fValues.size(); i++) { fValues.addElement(newVal.fValues.elementAt(i)); // REVISIT: addValueType(newVal.getValueTypeAt(i)); addItemValueType(newVal.getItemValueTypeAt(i)); } } // append(ValueStoreBase)
/** * Returns true if this value store contains the locally scoped value stores */ public boolean contains() { // REVISIT: we can improve performance by using hash codes, instead of // traversing global vector that could be quite large. int next = 0; final int size = fValues.size(); LOOP : for (int i = 0; i < size; i = next) { next = i + fFieldCount; for (int j = 0; j < fFieldCount; j++) { final Object value1 = fLocalValues[j]; final Object value2 = fValues.elementAt(i); final short valueType1 = fLocalValueTypes[j]; final short valueType2 = getValueTypeAt(i); final ShortList typeList1 = isListType(valueType1) ? fLocalItemValueTypes[j] : null; final ShortList typeList2 = isListType(valueType2) ? getItemValueTypeAt(i) : null; if (!EqualityHelper.isEqual(value1, value2, valueType1, valueType2, typeList1, typeList2, fSchemaVersion)) { continue LOOP; } i++; } // found it return true; } // didn't find it return false; } // contains():boolean
LOOP: for (int i = 0; i < size1; ++i) { final Object value1 = values.elementAt(i); final short valueType1 = vsb.getValueTypeAt(i); final ShortList typeList1 = isListType(valueType1) ? vsb.getItemValueTypeAt(i) : null; for (int j=0; j < fValues.size(); ++j) { final Object value2 = fValues.elementAt(j); final short valueType2 = getValueTypeAt(j); final ShortList typeList2 = isListType(valueType2) ? getItemValueTypeAt(j) : null; if (EqualityHelper.isEqual(value1, value2, valueType1, valueType2, typeList1, typeList2, fSchemaVersion)) { final Object value1 = values.elementAt(i+k); final Object value2 = fValues.elementAt(j+k); final short valueType1 = vsb.getValueTypeAt(i+k); final short valueType2 = getValueTypeAt(j+k); final ShortList typeList1 = isListType(valueType1) ? vsb.getItemValueTypeAt(i+k) : null; final ShortList typeList2 = isListType(valueType2) ? getItemValueTypeAt(j+k) : null;