Skip to content

Commit

Permalink
runtime-field: Add FieldComparator with additional metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
Pyknic committed Nov 10, 2016
1 parent 8816f42 commit e11ce18
Show file tree
Hide file tree
Showing 22 changed files with 121 additions and 103 deletions.
@@ -0,0 +1,26 @@
package com.speedment.runtime.field.comparator;

import com.speedment.runtime.field.trait.HasComparableOperators;
import java.util.Comparator;

/**
* A specialized {@link Comparator} that contains meta data information about
* the field that is being compared.
*
* @param <ENTITY> the entity type
* @param <V> the value type
*
* @author Emil Forslund
* @since 3.0.2
*/
public interface FieldComparator<ENTITY, V extends Comparable<? super V>>
extends Comparator<ENTITY> {

/**
* Returns the field that created this comparator.
*
* @return the field
*/
HasComparableOperators<ENTITY, V> getField();

}
Expand Up @@ -18,6 +18,7 @@

import com.speedment.runtime.config.identifier.ColumnIdentifier;
import com.speedment.runtime.field.ComparableField;
import com.speedment.runtime.field.comparator.FieldComparator;
import com.speedment.runtime.field.internal.comparator.NullOrder;
import com.speedment.runtime.field.internal.comparator.ReferenceFieldComparatorImpl;
import com.speedment.runtime.field.internal.predicate.reference.*;
Expand All @@ -26,13 +27,10 @@
import com.speedment.runtime.field.predicate.FieldPredicate;
import com.speedment.runtime.field.predicate.Inclusion;
import com.speedment.runtime.typemapper.TypeMapper;

import java.util.Comparator;
import static java.util.Objects.requireNonNull;
import java.util.Set;
import java.util.function.Predicate;

import static java.util.Objects.requireNonNull;

/**
* @param <ENTITY> the entity type
* @param <D> the database type
Expand Down Expand Up @@ -100,17 +98,17 @@ public boolean isUnique() {
/*****************************************************************/

@Override
public Comparator<ENTITY> comparator() {
public FieldComparator<ENTITY, V> comparator() {
return new ReferenceFieldComparatorImpl<>(this, NullOrder.NONE);
}

@Override
public Comparator<ENTITY> comparatorNullFieldsFirst() {
public FieldComparator<ENTITY, V> comparatorNullFieldsFirst() {
return new ReferenceFieldComparatorImpl<>(this, NullOrder.FIRST);
}

@Override
public Comparator<ENTITY> comparatorNullFieldsLast() {
public FieldComparator<ENTITY, V> comparatorNullFieldsLast() {
return new ReferenceFieldComparatorImpl<>(this, NullOrder.LAST);
}

Expand Down
Expand Up @@ -19,6 +19,7 @@
import com.speedment.runtime.config.identifier.ColumnIdentifier;
import com.speedment.runtime.config.identifier.TableIdentifier;
import com.speedment.runtime.field.ComparableForeignKeyField;
import com.speedment.runtime.field.comparator.FieldComparator;
import com.speedment.runtime.field.internal.comparator.NullOrder;
import com.speedment.runtime.field.internal.comparator.ReferenceFieldComparatorImpl;
import com.speedment.runtime.field.internal.method.BackwardFinderImpl;
Expand All @@ -32,15 +33,12 @@
import com.speedment.runtime.field.predicate.Inclusion;
import com.speedment.runtime.field.trait.HasComparableOperators;
import com.speedment.runtime.typemapper.TypeMapper;

import java.util.Comparator;
import static java.util.Objects.requireNonNull;
import java.util.Set;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Stream;

import static java.util.Objects.requireNonNull;

/**
* @param <ENTITY> the entity type
* @param <D> the database type
Expand Down Expand Up @@ -127,17 +125,17 @@ public boolean isUnique() {
/*****************************************************************/

@Override
public Comparator<ENTITY> comparator() {
public FieldComparator<ENTITY, V> comparator() {
return new ReferenceFieldComparatorImpl<>(this, NullOrder.NONE);
}

@Override
public Comparator<ENTITY> comparatorNullFieldsFirst() {
public FieldComparator<ENTITY, V> comparatorNullFieldsFirst() {
return new ReferenceFieldComparatorImpl<>(this, NullOrder.FIRST);
}

@Override
public Comparator<ENTITY> comparatorNullFieldsLast() {
public FieldComparator<ENTITY, V> comparatorNullFieldsLast() {
return new ReferenceFieldComparatorImpl<>(this, NullOrder.LAST);
}

Expand Down
Expand Up @@ -18,6 +18,7 @@

import com.speedment.runtime.config.identifier.ColumnIdentifier;
import com.speedment.runtime.field.StringField;
import com.speedment.runtime.field.comparator.FieldComparator;
import com.speedment.runtime.field.internal.comparator.NullOrder;
import com.speedment.runtime.field.internal.comparator.ReferenceFieldComparatorImpl;
import com.speedment.runtime.field.internal.predicate.reference.*;
Expand All @@ -27,13 +28,10 @@
import com.speedment.runtime.field.predicate.FieldPredicate;
import com.speedment.runtime.field.predicate.Inclusion;
import com.speedment.runtime.typemapper.TypeMapper;

import java.util.Comparator;
import static java.util.Objects.requireNonNull;
import java.util.Set;
import java.util.function.Predicate;

import static java.util.Objects.requireNonNull;

/**
* @param <ENTITY> the entity type
* @param <D> the database type
Expand Down Expand Up @@ -98,17 +96,17 @@ public boolean isUnique() {
/*****************************************************************/

@Override
public Comparator<ENTITY> comparator() {
public FieldComparator<ENTITY, String> comparator() {
return new ReferenceFieldComparatorImpl<>(this, NullOrder.NONE);
}

@Override
public Comparator<ENTITY> comparatorNullFieldsFirst() {
public FieldComparator<ENTITY, String> comparatorNullFieldsFirst() {
return new ReferenceFieldComparatorImpl<>(this, NullOrder.FIRST);
}

@Override
public Comparator<ENTITY> comparatorNullFieldsLast() {
public FieldComparator<ENTITY, String> comparatorNullFieldsLast() {
return new ReferenceFieldComparatorImpl<>(this, NullOrder.LAST);
}

Expand Down
Expand Up @@ -20,6 +20,7 @@
import com.speedment.runtime.config.identifier.TableIdentifier;
import com.speedment.runtime.field.StringField;
import com.speedment.runtime.field.StringForeignKeyField;
import com.speedment.runtime.field.comparator.FieldComparator;
import com.speedment.runtime.field.internal.comparator.NullOrder;
import com.speedment.runtime.field.internal.comparator.ReferenceFieldComparatorImpl;
import com.speedment.runtime.field.internal.method.BackwardFinderImpl;
Expand All @@ -33,15 +34,12 @@
import com.speedment.runtime.field.predicate.FieldPredicate;
import com.speedment.runtime.field.predicate.Inclusion;
import com.speedment.runtime.typemapper.TypeMapper;

import java.util.Comparator;
import static java.util.Objects.requireNonNull;
import java.util.Set;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Stream;

import static java.util.Objects.requireNonNull;

/**
* @param <ENTITY> the entity type
* @param <D> the database type
Expand Down Expand Up @@ -124,17 +122,17 @@ public boolean isUnique() {
/* Comparators */
/**************************************************************************/
@Override
public Comparator<ENTITY> comparator() {
public FieldComparator<ENTITY, String> comparator() {
return new ReferenceFieldComparatorImpl<>(this, NullOrder.NONE);
}

@Override
public Comparator<ENTITY> comparatorNullFieldsFirst() {
public FieldComparator<ENTITY, String> comparatorNullFieldsFirst() {
return new ReferenceFieldComparatorImpl<>(this, NullOrder.FIRST);
}

@Override
public Comparator<ENTITY> comparatorNullFieldsLast() {
public FieldComparator<ENTITY, String> comparatorNullFieldsLast() {
return new ReferenceFieldComparatorImpl<>(this, NullOrder.LAST);
}

Expand Down
Expand Up @@ -16,8 +16,8 @@
*/
package com.speedment.runtime.field.internal.comparator;

import com.speedment.runtime.field.trait.HasByteValue;
import java.util.Comparator;
import com.speedment.runtime.field.ByteField;
import com.speedment.runtime.field.comparator.FieldComparator;
import javax.annotation.Generated;

/**
Expand All @@ -30,14 +30,14 @@
* @since 3.0.0
*/
@Generated(value = "Speedment")
public interface ByteFieldComparator<ENTITY, D> extends Comparator<ENTITY> {
public interface ByteFieldComparator<ENTITY, D> extends FieldComparator<ENTITY, Byte> {

/**
* Gets the field that is being compared.
*
* @return the compared field
*/
HasByteValue<ENTITY, D> getField();
ByteField<ENTITY, D> getField();

/**
* Returns if this {@code Comparator} is reversed.
Expand Down
Expand Up @@ -16,7 +16,7 @@
*/
package com.speedment.runtime.field.internal.comparator;

import com.speedment.runtime.field.trait.HasByteValue;
import com.speedment.runtime.field.ByteField;
import java.util.Comparator;
import javax.annotation.Generated;
import static com.speedment.common.invariant.NullUtil.requireNonNulls;
Expand All @@ -32,16 +32,16 @@
@Generated(value = "Speedment")
public final class ByteFieldComparatorImpl<ENTITY, D> implements ByteFieldComparator<ENTITY, D> {

private final HasByteValue<ENTITY, D> field;
private final ByteField<ENTITY, D> field;
private boolean reversed;

public ByteFieldComparatorImpl(HasByteValue<ENTITY, D> field) {
public ByteFieldComparatorImpl(ByteField<ENTITY, D> field) {
this.field = requireNonNull(field);
this.reversed = false;
}

@Override
public HasByteValue<ENTITY, D> getField() {
public ByteField<ENTITY, D> getField() {
return field;
}

Expand Down
Expand Up @@ -16,8 +16,8 @@
*/
package com.speedment.runtime.field.internal.comparator;

import com.speedment.runtime.field.trait.HasCharValue;
import java.util.Comparator;
import com.speedment.runtime.field.CharField;
import com.speedment.runtime.field.comparator.FieldComparator;
import javax.annotation.Generated;

/**
Expand All @@ -30,14 +30,14 @@
* @since 3.0.0
*/
@Generated(value = "Speedment")
public interface CharFieldComparator<ENTITY, D> extends Comparator<ENTITY> {
public interface CharFieldComparator<ENTITY, D> extends FieldComparator<ENTITY, Character> {

/**
* Gets the field that is being compared.
*
* @return the compared field
*/
HasCharValue<ENTITY, D> getField();
CharField<ENTITY, D> getField();

/**
* Returns if this {@code Comparator} is reversed.
Expand Down
Expand Up @@ -16,7 +16,7 @@
*/
package com.speedment.runtime.field.internal.comparator;

import com.speedment.runtime.field.trait.HasCharValue;
import com.speedment.runtime.field.CharField;
import java.util.Comparator;
import javax.annotation.Generated;
import static com.speedment.common.invariant.NullUtil.requireNonNulls;
Expand All @@ -32,16 +32,16 @@
@Generated(value = "Speedment")
public final class CharFieldComparatorImpl<ENTITY, D> implements CharFieldComparator<ENTITY, D> {

private final HasCharValue<ENTITY, D> field;
private final CharField<ENTITY, D> field;
private boolean reversed;

public CharFieldComparatorImpl(HasCharValue<ENTITY, D> field) {
public CharFieldComparatorImpl(CharField<ENTITY, D> field) {
this.field = requireNonNull(field);
this.reversed = false;
}

@Override
public HasCharValue<ENTITY, D> getField() {
public CharField<ENTITY, D> getField() {
return field;
}

Expand Down
Expand Up @@ -16,8 +16,8 @@
*/
package com.speedment.runtime.field.internal.comparator;

import com.speedment.runtime.field.trait.HasDoubleValue;
import java.util.Comparator;
import com.speedment.runtime.field.DoubleField;
import com.speedment.runtime.field.comparator.FieldComparator;
import javax.annotation.Generated;

/**
Expand All @@ -30,14 +30,14 @@
* @since 3.0.0
*/
@Generated(value = "Speedment")
public interface DoubleFieldComparator<ENTITY, D> extends Comparator<ENTITY> {
public interface DoubleFieldComparator<ENTITY, D> extends FieldComparator<ENTITY, Double> {

/**
* Gets the field that is being compared.
*
* @return the compared field
*/
HasDoubleValue<ENTITY, D> getField();
DoubleField<ENTITY, D> getField();

/**
* Returns if this {@code Comparator} is reversed.
Expand Down
Expand Up @@ -16,7 +16,7 @@
*/
package com.speedment.runtime.field.internal.comparator;

import com.speedment.runtime.field.trait.HasDoubleValue;
import com.speedment.runtime.field.DoubleField;
import java.util.Comparator;
import javax.annotation.Generated;
import static com.speedment.common.invariant.NullUtil.requireNonNulls;
Expand All @@ -32,16 +32,16 @@
@Generated(value = "Speedment")
public final class DoubleFieldComparatorImpl<ENTITY, D> implements DoubleFieldComparator<ENTITY, D> {

private final HasDoubleValue<ENTITY, D> field;
private final DoubleField<ENTITY, D> field;
private boolean reversed;

public DoubleFieldComparatorImpl(HasDoubleValue<ENTITY, D> field) {
public DoubleFieldComparatorImpl(DoubleField<ENTITY, D> field) {
this.field = requireNonNull(field);
this.reversed = false;
}

@Override
public HasDoubleValue<ENTITY, D> getField() {
public DoubleField<ENTITY, D> getField() {
return field;
}

Expand Down

0 comments on commit e11ce18

Please sign in to comment.