package squill.mgen; import squill.mgen.naming.Conventions; import squill.mgen.naming.NamingStrategy; import squill.util.StringUtil; public class MapForeignKey { private final NamingStrategy namingStrategy; private final DbTable table; private final DbForeignKey dbForeignKey; private final boolean unique; public MapForeignKey(NamingStrategy namingStrategy, DbTable table, DbForeignKey dbForeignKey, boolean unique) { this.namingStrategy = namingStrategy; this.table = table; this.dbForeignKey = dbForeignKey; this.unique = unique; } public String getJoinInnerClassName() { return Conventions.javaTableName(namingStrategy, dbForeignKey.getRefTableName()) + "By" + getSourceColumnPropertyName(); } public String getJoinFieldName() { return unique ? getTargetTableJavaName() : getTargetTableJavaName() + "By" + getSourceColumnPropertyName(); } public String getTargetTableJavaName() { return StringUtil.decapitalize(namingStrategy.getTypeName(dbForeignKey.getRefTableName())); } public String getTargetTableJavaClassName() { return Conventions.javaBeanName(namingStrategy, dbForeignKey.getRefTableName()) + "." + Conventions.javaTableName(namingStrategy, dbForeignKey.getRefTableName()); } public String getSourceColumnPropertyName() { return StringUtil.capitalize(getSourceColumnName()); } public String getSourceColumnName() { return namingStrategy.getFieldName(table.getName(), dbForeignKey.getColName()); } public String getTargetColumnName() { return namingStrategy.getFieldName(table.getName(), dbForeignKey.getRefColName()); } }