mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
Replaced all uses of ju.Objects.hashCode and ju.Objects.equals with a copy of their implementations inlined into the code. Also changed source/target for compiler plugin. To test, I compiled my own avaje launchagent against 6, and changed to use that in the pom, compiled/tested the whole project using JDK 7, then ran mvn surefire:test using JDK 6 - running surefire:test ensures that mvn doesn't try to recompile everything against 6, since that's not possible because of some of the delegate classes having delegate methods to JDK 7 jdbc classes.
79 lines
1.6 KiB
Java
79 lines
1.6 KiB
Java
package com.avaje.ebeaninternal.api;
|
|
|
|
/**
|
|
* Used to build HashQueryPlan instances.
|
|
*/
|
|
public class HashQueryPlanBuilder {
|
|
|
|
private int planHash;
|
|
|
|
private int bindCount;
|
|
|
|
private String rawSql;
|
|
|
|
public HashQueryPlanBuilder() {
|
|
this.planHash = 31;
|
|
}
|
|
|
|
public String toString() {
|
|
return planHash+":"+bindCount+(rawSql != null ? ":r" : "");
|
|
}
|
|
|
|
/**
|
|
* Add a class to the hash calculation.
|
|
*/
|
|
public HashQueryPlanBuilder add(Class<?> cls) {
|
|
planHash = planHash * 31 + cls.getName().hashCode();
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Add an object to the hash calculation.
|
|
*/
|
|
public HashQueryPlanBuilder add(Object object) {
|
|
planHash = planHash * 31 + (object == null ? 0 : object.hashCode());
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Add an integer to the hash calculation.
|
|
*/
|
|
public HashQueryPlanBuilder add(int hashValue) {
|
|
planHash = planHash * 31 + (hashValue);
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Add a boolean to the hash calculation.
|
|
*/
|
|
public HashQueryPlanBuilder add(boolean booleanValue) {
|
|
planHash = planHash * 31 + (booleanValue ? 31 : 0);
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Add a number to the bind count for the hash.
|
|
*/
|
|
public HashQueryPlanBuilder bind(int extraBindCount) {
|
|
bindCount += extraBindCount;
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Add raw sql to the hash.
|
|
*/
|
|
public HashQueryPlanBuilder addRawSql(String rawSql) {
|
|
this.rawSql = rawSql;
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* Build and return the calculated HashQueryPlan.
|
|
*/
|
|
public HashQueryPlan build() {
|
|
return new HashQueryPlan(rawSql, planHash, bindCount);
|
|
}
|
|
|
|
|
|
}
|