@Override public boolean equals(Object other) { if (!(other instanceof ValueArray)) { return false; } ValueArray v = (ValueArray) other; if (values == v.values) { return true; } int len = values.length; if (len != v.values.length) { return false; } for (int i = 0; i < len; i++) { if (!values[i].equals(v.values[i])) { return false; } } return true; }
/** * Get the value for this key. This method returns null if the key was not * found. * * @param key the key * @return the value for the given key */ public V get(Value key) { int index = getIndex(key); int plus = 1; do { Value k = keys[index]; if (k == null) { // found an empty record return null; } else if (k == ValueNull.DELETED) { // found a deleted record } else if (k.equals(key)) { // found it return values[index]; } index = (index + plus++) & mask; } while (plus <= len); return null; }
/** * Remove a key value pair. * * @param key the key */ public void remove(Value key) { checkSizeRemove(); int index = getIndex(key); int plus = 1; do { Value k = keys[index]; if (k == null) { // found an empty record return; } else if (k == ValueNull.DELETED) { // found a deleted record } else if (k.equals(key)) { // found the record keys[index] = ValueNull.DELETED; values[index] = null; deletedCount++; size--; return; } index = (index + plus++) & mask; } while (plus <= len); // not found }
Value cached = cache[index]; if (cached != null) { if (cached.getType() == v.getType() && v.equals(cached)) {
deleted = index; } else if (k.equals(key)) {
private boolean checkIndex(ServerSession session, String value, Value indexFrom, Value indexTo) { if (value == null || (indexFrom == null && indexTo == null)) { return true; } Database db = session.getDatabase(); if (database.getMode().lowerCaseIdentifiers) { Value v = ValueStringIgnoreCase.get(value); if (indexFrom.equals(indexTo) && db.compare(v, indexFrom) != 0) { return false; } } else { Value v = ValueString.get(value); if (indexFrom != null && db.compare(v, indexFrom) < 0) { return false; } if (indexTo != null && db.compare(v, indexTo) > 0) { return false; } } return true; }
Value[] list = ((ValueArray) v0).getList(); for (Value v : list) { if (v.equals(v1)) { result = ValueBoolean.get(true); break;