package io.cattle.platform.db.jooq.generator;
import io.cattle.platform.db.jooq.utils.TableRecordJaxb;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.jooq.util.DefaultGeneratorStrategy;
import org.jooq.util.Definition;
public class ModelStrategy extends DefaultGeneratorStrategy {
@Override
public String getJavaSetterName(Definition definition, Mode mode) {
String result = super.getJavaSetterName(definition, mode);
switch (result) {
case "setEnvironmentId":
return "setStackId";
case "setFolder":
return "setGroup";
}
return result;
}
@Override
public String getJavaGetterName(Definition definition, Mode mode) {
String result = super.getJavaGetterName(definition, mode);
switch (result) {
case "getEnvironmentId":
return "getStackId";
case "getFolder":
return "getGroup";
}
return result;
}
@Override
public String getJavaIdentifier(Definition definition) {
String result = super.getJavaIdentifier(definition);
switch (result) {
case "ENVIRONMENT":
return "STACK";
case "ENVIRONMENT_ID":
return "STACK_ID";
case "FOLDER":
return "GROUP";
}
return result;
}
@Override
public String getJavaClassName(Definition definition, Mode mode) {
String result = getJavaClassName0(definition, mode);
switch (result) {
case "Environment":
return "Stack";
case "EnvironmentRecord":
return "StackRecord";
case "EnvironmentTable":
return "StackTable";
}
return result;
}
protected String getJavaClassName0(Definition definition, Mode mode) {
if (mode == Mode.INTERFACE) {
String result = super.getJavaClassName(definition, mode);
return StringUtils.removeStart(result, "I");
} else if (mode == Mode.DEFAULT) {
return super.getJavaClassName(definition, mode) + "Table";
}
return super.getJavaClassName(definition, mode);
}
@Override
public String getJavaPackageName(Definition definition, Mode mode) {
if (mode == Mode.INTERFACE) {
String result = super.getJavaPackageName(definition, mode);
return StringUtils.replace(result, ".tables.interfaces", "");
}
return super.getJavaPackageName(definition, mode);
}
@Override
public List<String> getJavaClassImplements(Definition definition, Mode mode) {
List<String> result = super.getJavaClassImplements(definition, mode);
if (mode == Mode.RECORD) {
result.add(TableRecordJaxb.class.getName());
}
return result;
}
}