package io.cattle.platform.db.jooq.utils;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import org.jooq.Schema;
import org.jooq.Table;
public class SchemaRecordTypeListGenerator {
Class<? extends Schema> schemaClass;
public List<Class<?>> getRecordTypes() {
List<Class<?>> result = new ArrayList<Class<?>>();
Schema schema = null;
try {
for (Field field : schemaClass.getFields()) {
if (field.getType() == schemaClass) {
schema = (Schema) field.get(schemaClass);
}
}
} catch (IllegalAccessException e) {
throw new IllegalArgumentException(e);
}
if (schema == null) {
throw new IllegalArgumentException("Failed to find TABLE field on [" + schemaClass + "]");
}
for (Table<?> table : schema.getTables()) {
result.add(table.getRecordType());
}
return result;
}
public Class<? extends Schema> getSchemaClass() {
return schemaClass;
}
public void setSchemaClass(Class<? extends Schema> schemaClass) {
this.schemaClass = schemaClass;
}
}