io.ebeaninternal.server.deploy.meta.DeployIdentityMode Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ebean Show documentation
Show all versions of ebean Show documentation
composite of common runtime dependencies for all platforms
package io.ebeaninternal.server.deploy.meta;
import io.ebean.annotation.Identity;
import io.ebean.annotation.IdentityGenerated;
import io.ebean.annotation.IdentityType;
import io.ebean.config.dbplatform.IdType;
public class DeployIdentityMode {
public static DeployIdentityMode auto() {
return new DeployIdentityMode(IdType.AUTO);
}
private IdType type;
private IdentityGenerated generated;
private int start;
private int increment;
private int cache;
private String sequenceName;
private boolean platformDefault;
public DeployIdentityMode(Identity id) {
this.type = idType(id.type());
this.generated = id.generated();
this.start = id.start();
this.increment = id.increment();
this.cache = id.cache();
this.sequenceName = id.sequenceName();
}
private DeployIdentityMode(IdType type) {
this.type = type;
this.generated = IdentityGenerated.AUTO;
this.sequenceName = "";
this.start = 0;
this.increment = 0;
this.cache = 0;
}
public void setPlatformType(IdType type) {
this.type = type;
this.platformDefault = true;
}
public void setSequence(int initialValue, int allocationSize, String sequenceName) {
this.start = initialValue;
this.increment = allocationSize;
this.sequenceName = sequenceName;
}
public void setSequenceGenerator(String genName) {
if (sequenceName == null || sequenceName.isEmpty()) {
sequenceName = genName;
}
}
public int setSequenceBatchMode(boolean sequenceBatchMode) {
if (sequenceBatchMode) {
// Ebean batch fetching multiple sequence values
increment = 1;
} else if (increment == 0) {
// Use JPA default of 50
increment = 50;
}
return increment;
}
public void setIdType(IdType type) {
this.type = type;
}
public void setStart(int start) {
this.start = start;
}
public void setIncrement(int increment) {
this.increment = increment;
}
public void setSequenceName(String sequenceName) {
this.sequenceName = sequenceName;
}
public boolean isPlatformDefault() {
return platformDefault;
}
public IdType getIdType() {
return type;
}
public IdentityGenerated getGenerated() {
return generated;
}
public int getStart() {
return start;
}
public int getIncrement() {
return increment;
}
public int getCache() {
return cache;
}
public String getSequenceName() {
return sequenceName;
}
public boolean isSequence() {
return type == IdType.SEQUENCE;
}
public boolean isIdentity() {
return type == IdType.IDENTITY;
}
public boolean isExternal() {
return type == IdType.EXTERNAL;
}
public boolean isAuto() {
return type == IdType.AUTO;
}
private static IdType idType(IdentityType type) {
switch (type) {
case AUTO:
return IdType.AUTO;
case SEQUENCE:
return IdType.SEQUENCE;
case IDENTITY:
return IdType.IDENTITY;
case APPLICATION:
return IdType.EXTERNAL;
default:
throw new IllegalStateException("type " + type + " not expected?");
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy