@Override
    public String toString() {
        final ColumnIdentifier<ENTITY> cId = field.identifier();
        final StringBuilder sb = new StringBuilder();

        sb.append(getClass().getSimpleName())
            .append(" {")
            .append("field: ")
            .append(cId.getDbmsId()).append('.')
            .append(cId.getSchemaId()).append('.')
            .append(cId.getTableId()).append('.')
            .append(cId.getColumnId())
            .append(", type: '").append(predicateType).append("'");

        Cast.cast(this, Tuple.class).ifPresent(tuple -> {
            for (int i = 0; i < tuple.degree(); i++) {
                sb.append(", operand ").append(i)
                    .append(": ").append(tuple.get(i));
            }
        });

        return sb.append("}").toString();
    }
A predicate that contains meta-data about the {@link Field} that was used to
construct it.

@param <ENTITY> the entity type that is being tested
@param <FIELD>  the field in the entity that is operated on

@author Emil Forslund
@since 3.0.0
runtime-parent/runtime-field/src/main/java/com/speedment/runtime/field/internal/predicate/AbstractFieldPredicate.java