diff --git a/base/src/org/adempiere/util/ModelInterfaceGenerator.java b/base/src/org/adempiere/util/ModelInterfaceGenerator.java index 1939f5c848..b796af7f5d 100644 --- a/base/src/org/adempiere/util/ModelInterfaceGenerator.java +++ b/base/src/org/adempiere/util/ModelInterfaceGenerator.java @@ -64,6 +64,7 @@ import org.compiere.util.Env; *
  • BF [ 1787833 ] ModelInterfaceGenerator: don't write timestamp *
  • FR [ 1803309 ] Model generator: generate get method for Search cols *
  • FR [ 2343096 ] Model Generator: Improve Reference Class Detection + *
  • BF [ 2528434 ] ModelInterfaceGenerator: generate getters for common fields * @author Victor Perez, e-Evolution *
  • FR [ 1785001 ] Using ModelPackage of EntityType to Generate Model Class */ @@ -229,11 +230,11 @@ public class ModelInterfaceGenerator + " c.Name, c.Description, c.ColumnSQL, c.IsEncrypted, c.IsKey " // 13..17 + "FROM AD_Column c " + "WHERE c.AD_Table_ID=?" - + " AND c.ColumnName <> 'AD_Client_ID'" +// + " AND c.ColumnName <> 'AD_Client_ID'" // + " AND c.ColumnName <> 'AD_Org_ID'" - + " AND c.ColumnName <> 'IsActive'" - + " AND c.ColumnName NOT LIKE 'Created%'" - + " AND c.ColumnName NOT LIKE 'Updated%' " +// + " AND c.ColumnName <> 'IsActive'" +// + " AND c.ColumnName NOT LIKE 'Created%'" +// + " AND c.ColumnName NOT LIKE 'Updated%' " + " AND c.IsActive='Y'" + " ORDER BY c.ColumnName"; PreparedStatement pstmt = null; @@ -324,12 +325,14 @@ public class ModelInterfaceGenerator StringBuffer sb = new StringBuffer(); - // Create Java Comment - generateJavaComment("Set", Name, Description, sb); - - // public void setColumn (xxx variable) - sb.append("\tpublic void set").append(columnName).append(" (") - .append(dataType).append(" ").append(columnName).append(");"); + if (isGenerateSetter(columnName)) + { + // Create Java Comment + generateJavaComment("Set", Name, Description, sb); + // public void setColumn (xxx variable) + sb.append("\tpublic void set").append(columnName).append(" (") + .append(dataType).append(" ").append(columnName).append(");"); + } // ****** Get Comment ****** generateJavaComment("Get", Name, Description, sb); @@ -346,13 +349,9 @@ public class ModelInterfaceGenerator sb.append("();"); // - if (DisplayType.isID(displayType) && !IsKey) + if (isGenerateModelGetter(columnName) && DisplayType.isID(displayType) && !IsKey) { - if ("AD_Org_ID".equalsIgnoreCase(columnName)) - { - ; // do nothing - } - else if (displayType == DisplayType.TableDir + if (displayType == DisplayType.TableDir || (displayType == DisplayType.Search && AD_Reference_ID == 0)) { String referenceClassName = "I_"+columnName.substring(0, columnName.length()-3); @@ -360,7 +359,8 @@ public class ModelInterfaceGenerator String tableName = columnName.substring(0, columnName.length()-3); MTable table = MTable.get(Env.getCtx(), tableName); - if (table != null) { + if (table != null) + { String entityType = table.getEntityType(); if (!"D".equals(entityType)) { @@ -391,7 +391,7 @@ public class ModelInterfaceGenerator addImportClass(clazz); return sb.toString(); } - + // ****** Set/Get Comment ****** public void generateJavaComment(String startOfComment, String propertyName, String description, StringBuffer result) { result.append("\n") @@ -566,6 +566,37 @@ public class ModelInterfaceGenerator } return dataType; } + + /** + * @param columnName + * @return true if a setter method should be generated + */ + public boolean isGenerateSetter(String columnName) + { + return + !"AD_Client_ID".equals(columnName) + //&& !"AD_Org_ID".equals(columnName) + //&& !"IsActive".equals(columnName) + && !"Created".equals(columnName) + && !"CreatedBy".equals(columnName) + && !"Updated".equals(columnName) + && !"UpdatedBy".equals(columnName) + ; + } + + /** + * @param columnName + * @return true if a model getter method should be generated + */ + public boolean isGenerateModelGetter(String columnName) + { + return + !"AD_Client_ID".equals(columnName) + && !"AD_Org_ID".equals(columnName) + && !"CreatedBy".equals(columnName) + && !"UpdatedBy".equals(columnName) + ; + } /** * String representation