Make cached properties transient

This commit is contained in:
Timo Westkämper 2015-04-26 16:37:38 +03:00 committed by John Tims
parent 6bf897ca02
commit 6c99bcbb45
9 changed files with 28 additions and 23 deletions

View File

@ -29,7 +29,7 @@ public abstract class BooleanExpression extends LiteralExpression<Boolean> imple
private static final long serialVersionUID = 3797956062512074164L;
@Nullable
private volatile BooleanExpression eqTrue, eqFalse;
private transient volatile BooleanExpression eqTrue, eqFalse;
@Nullable
private volatile BooleanExpression not;

View File

@ -36,10 +36,10 @@ public abstract class CollectionExpressionBase<T extends Collection<E>, E> exten
private static final long serialVersionUID = 691230660037162054L;
@Nullable
private volatile BooleanExpression empty;
private transient volatile BooleanExpression empty;
@Nullable
private volatile NumberExpression<Integer> size;
private transient volatile NumberExpression<Integer> size;
public CollectionExpressionBase(Expression<T> mixin) {
super(mixin);

View File

@ -54,13 +54,13 @@ public abstract class DateExpression<T extends Comparable> extends TemporalExpre
}
@Nullable
private volatile NumberExpression<Integer> dayOfMonth, dayOfWeek, dayOfYear;
private transient volatile NumberExpression<Integer> dayOfMonth, dayOfWeek, dayOfYear;
@Nullable
private volatile DateExpression<T> min, max;
private transient volatile DateExpression<T> min, max;
@Nullable
private volatile NumberExpression<Integer> week, month, year, yearMonth, yearWeek;
private transient volatile NumberExpression<Integer> week, month, year, yearMonth, yearWeek;
public DateExpression(Expression<T> mixin) {
super(mixin);

View File

@ -73,16 +73,16 @@ public abstract class DateTimeExpression<T extends Comparable> extends TemporalE
}
@Nullable
private volatile NumberExpression<Integer> dayOfMonth, dayOfWeek, dayOfYear;
private transient volatile NumberExpression<Integer> dayOfMonth, dayOfWeek, dayOfYear;
@Nullable
private volatile NumberExpression<Integer> hours, minutes, seconds, milliseconds;
private transient volatile NumberExpression<Integer> hours, minutes, seconds, milliseconds;
@Nullable
private volatile DateTimeExpression<T> min, max;
private transient volatile DateTimeExpression<T> min, max;
@Nullable
private volatile NumberExpression<Integer> week, month, year, yearMonth, yearWeek;
private transient volatile NumberExpression<Integer> week, month, year, yearMonth, yearWeek;
public DateTimeExpression(Expression<T> mixin) {
super(mixin);

View File

@ -26,6 +26,8 @@ public abstract class EnumExpression<T extends Enum<T>> extends LiteralExpressio
private static final long serialVersionUID = 8819222316513862829L;
private transient volatile NumberExpression<Integer> ordinal;
public EnumExpression(Expression<T> mixin) {
super(mixin);
}
@ -46,7 +48,10 @@ public abstract class EnumExpression<T extends Enum<T>> extends LiteralExpressio
* @return ordinal number
*/
public NumberExpression<Integer> ordinal() {
return Expressions.numberOperation(Integer.class, Ops.ORDINAL, mixin);
if (ordinal == null) {
ordinal = Expressions.numberOperation(Integer.class, Ops.ORDINAL, mixin);
}
return ordinal;
}
}

View File

@ -27,7 +27,7 @@ import com.querydsl.core.types.Ops;
public abstract class LiteralExpression<T extends Comparable> extends ComparableExpression<T> {
@Nullable
private volatile StringExpression stringCast;
private transient volatile StringExpression stringCast;
public LiteralExpression(Expression<T> mixin) {
super(mixin);

View File

@ -71,16 +71,16 @@ public abstract class NumberExpression<T extends Number & Comparable<?>> extends
}
@Nullable
private volatile NumberExpression<T> abs, sum, min, max, floor, ceil, round;
private transient volatile NumberExpression<T> abs, sum, min, max, floor, ceil, round;
@Nullable
private volatile NumberExpression<Double> avg, sqrt;
private transient volatile NumberExpression<Double> avg, sqrt;
@Nullable
private volatile NumberExpression<T> negation;
private transient volatile NumberExpression<T> negation;
@Nullable
private volatile StringExpression stringCast;
private transient volatile StringExpression stringCast;
public NumberExpression(Expression<T> mixin) {
super(mixin);

View File

@ -32,13 +32,13 @@ public abstract class SimpleExpression<T> extends DslExpression<T> {
private static final long serialVersionUID = -4405387187738167105L;
@Nullable
private volatile NumberExpression<Long> count;
private transient volatile NumberExpression<Long> count;
@Nullable
private volatile NumberExpression<Long> countDistinct;
private transient volatile NumberExpression<Long> countDistinct;
@Nullable
private volatile BooleanExpression isnull, isnotnull;
private transient volatile BooleanExpression isnull, isnotnull;
public SimpleExpression(Expression<T> mixin) {
super(mixin);

View File

@ -28,16 +28,16 @@ public abstract class StringExpression extends LiteralExpression<String> {
private static final long serialVersionUID = 1536955079961023361L;
@Nullable
private volatile NumberExpression<Integer> length;
private transient volatile NumberExpression<Integer> length;
@Nullable
private volatile StringExpression lower, trim, upper;
private transient volatile StringExpression lower, trim, upper;
@Nullable
private volatile StringExpression min, max;
private transient volatile StringExpression min, max;
@Nullable
private volatile BooleanExpression isempty;
private transient volatile BooleanExpression isempty;
public StringExpression(Expression<String> mixin) {
super(mixin);