/** * {@inheritDoc} * * FIXME This needs to be reconciled with * {@link ITupleSerializer#serializeKey(Object)}. For example, this * does not play well with the {@link DefaultTupleSerializer}. */ @Override public byte[] getKey(final IKeyBuilder keyBuilder, final E element) { keyBuilder.reset(); final int keyArity = getKeyArity(); // use the key's "arity". for (int i = 0; i < keyArity; i++) { /* * Note: If you need to override the default IKeyBuilder behavior do * it in the invoked method. */ appendKeyComponent(keyBuilder, i, ((IElement) element) .get(getKeyOrder(i))); } return keyBuilder.getKey(); }
/** * {@inheritDoc} * * FIXME This needs to be reconciled with * {@link ITupleSerializer#serializeKey(Object)}. For example, this * does not play well with the {@link DefaultTupleSerializer}. */ @Override public byte[] getKey(final IKeyBuilder keyBuilder, final E element) { keyBuilder.reset(); final int keyArity = getKeyArity(); // use the key's "arity". for (int i = 0; i < keyArity; i++) { /* * Note: If you need to override the default IKeyBuilder behavior do * it in the invoked method. */ appendKeyComponent(keyBuilder, i, ((IElement) element) .get(getKeyOrder(i))); } return keyBuilder.getKey(); }
@Override public byte[] getFromKey(final IKeyBuilder keyBuilder, final IPredicate<E> predicate) { keyBuilder.reset(); final int keyArity = getKeyArity(); // use the key's "arity". boolean noneBound = true; for (int i = 0; i < keyArity; i++) { final IVariableOrConstant<?> term = predicate.get(getKeyOrder(i)); // Note: term MAY be null for the context position. if (term == null || term.isVar()) break; /* * Note: If you need to override the default IKeyBuilder behavior do * it in the invoked method. */ appendKeyComponent(keyBuilder, i, term.get()); noneBound = false; } final byte[] key = noneBound ? null : keyBuilder.getKey(); return key; }
@Override public byte[] getFromKey(final IKeyBuilder keyBuilder, final IPredicate<E> predicate) { keyBuilder.reset(); final int keyArity = getKeyArity(); // use the key's "arity". boolean noneBound = true; for (int i = 0; i < keyArity; i++) { final IVariableOrConstant<?> term = predicate.get(getKeyOrder(i)); // Note: term MAY be null for the context position. if (term == null || term.isVar()) break; /* * Note: If you need to override the default IKeyBuilder behavior do * it in the invoked method. */ appendKeyComponent(keyBuilder, i, term.get()); noneBound = false; } final byte[] key = noneBound ? null : keyBuilder.getKey(); return key; }
@Override public byte[] getToKey(final IKeyBuilder keyBuilder, final IPredicate<E> predicate) { keyBuilder.reset(); final int keyArity = getKeyArity(); // use the key's "arity". boolean noneBound = true; for (int i = 0; i < keyArity; i++) { final IVariableOrConstant<?> term = predicate.get(getKeyOrder(i)); // Note: term MAY be null for the context position. if (term == null || term.isVar()) break; /* * Note: If you need to override the default IKeyBuilder behavior do * it in the invoked method. */ appendKeyComponent(keyBuilder, i, term.get()); noneBound = false; } final byte[] key = noneBound ? null : keyBuilder.getKey(); return key == null ? null : SuccessorUtil.successor(key); }
@Override public byte[] getToKey(final IKeyBuilder keyBuilder, final IPredicate<E> predicate) { keyBuilder.reset(); final int keyArity = getKeyArity(); // use the key's "arity". boolean noneBound = true; for (int i = 0; i < keyArity; i++) { final IVariableOrConstant<?> term = predicate.get(getKeyOrder(i)); // Note: term MAY be null for the context position. if (term == null || term.isVar()) break; /* * Note: If you need to override the default IKeyBuilder behavior do * it in the invoked method. */ appendKeyComponent(keyBuilder, i, term.get()); noneBound = false; } final byte[] key = noneBound ? null : keyBuilder.getKey(); return key == null ? null : SuccessorUtil.successor(key); }