From: <max...@us...> - 2003-02-17 18:22:50
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java In directory sc8-pr-cvs1:/tmp/cvs-serv25831/src/net/sf/hibernate/tool/hbm2java Modified Files: Field.java BasicRenderer.java Log Message: Added support for "gen-property" meta tag. If gen-property is false, then no field, getter and setters will be generated. Usecase is to be able to have an non persistent base class which provides the field and its getter and setters instead. (consider this as an experimental feature as it result in incomplete constructors) Index: Field.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java/Field.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Field.java 2 Feb 2003 17:34:09 -0000 1.6 --- Field.java 17 Feb 2003 18:22:42 -0000 1.7 *************** *** 48,51 **** --- 48,52 ---- this.foreignKeys = foreignKeys; setMeta(metaattribs); + } *************** *** 63,67 **** public String getGetterType() { ! return (getType().toLowerCase().equals("boolean") ) ? " is" : " get"; } --- 64,68 ---- public String getGetterType() { ! return (getType().toLowerCase().equals("boolean") ) ? "is" : "get"; } *************** *** 110,117 **** */ private void setMeta(MultiMap multiMap) { - if(multiMap==null) { - - throw new RuntimeException("Forget it!"); - } metaattribs = multiMap; } --- 111,114 ---- *************** *** 141,152 **** public boolean getMetaAsBool(String attribute) { ! Collection c= getMeta(attribute); ! ! if(c==null || c.isEmpty()) { ! return false; ! } else { ! return Boolean.valueOf(c.iterator().next().toString()).booleanValue(); ! } } /** * Returns the foreignClass. --- 138,154 ---- public boolean getMetaAsBool(String attribute) { ! return getMetaAsBool(attribute,false); } + + public boolean getMetaAsBool(String attribute, boolean defaultValue) { + Collection c= getMeta(attribute); + + if(c==null || c.isEmpty()) { + return defaultValue; + } else { + return Boolean.valueOf(c.iterator().next().toString()).booleanValue(); + } + } + /** * Returns the foreignClass. *************** *** 181,183 **** --- 183,188 ---- } + public boolean isGeneratedAsProperty() { + return getMetaAsBool("gen-property", true); + } } Index: BasicRenderer.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java/BasicRenderer.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** BasicRenderer.java 16 Feb 2003 12:49:02 -0000 1.10 --- BasicRenderer.java 17 Feb 2003 18:22:42 -0000 1.11 *************** *** 24,27 **** --- 24,28 ---- static private Log log = LogFactory.getLog(BasicRenderer.class); + /** * Returns the true name for the given class name. By true name is *************** *** 252,256 **** writer.print(field.getName()); if(fields.hasNext()) { ! writer.print(StringHelper.COMMA_SPACE); } } --- 253,257 ---- writer.print(field.getName()); if(fields.hasNext()) { ! writer.print(", "); } } *************** *** 261,265 **** for(Iterator fields = classMapping.getLocalFieldsForFullConstructor().iterator(); fields.hasNext();) { Field field = (Field) fields.next(); ! writer.println(" this." + field.getName() + " = " + field.getName() + ";"); } writer.println(" }"); --- 262,268 ---- for(Iterator fields = classMapping.getLocalFieldsForFullConstructor().iterator(); fields.hasNext();) { Field field = (Field) fields.next(); ! if(field.isGeneratedAsProperty()) { ! writer.println(" this." + field.getName() + " = " + field.getName() + ";"); ! } } writer.println(" }"); *************** *** 307,311 **** for (Iterator fields = classMapping.getLocalFieldsForMinimalConstructor().iterator(); fields.hasNext();) { Field field = (Field) fields.next(); ! writer.println(" this." + field.getName() + " = " + field.getName() + ";"); } writer.println(" }"); --- 310,316 ---- for (Iterator fields = classMapping.getLocalFieldsForMinimalConstructor().iterator(); fields.hasNext();) { Field field = (Field) fields.next(); ! if(field.isGeneratedAsProperty()) { ! writer.println(" this." + field.getName() + " = " + field.getName() + ";"); ! } } writer.println(" }"); *************** *** 319,322 **** --- 324,328 ---- Field field = (Field) fields.next(); + if(field.isGeneratedAsProperty()) { String fieldScope = getFieldScope(field, "scope-field", "private"); writer.println( *************** *** 332,336 **** ';' ); ! writer.println(); } --- 338,342 ---- ';' ); ! } writer.println(); } *************** *** 346,350 **** Field field = (Field) fields.next(); if ( field.isIdentifier() ) { ! writer.println(" .append(this." + field.getName() + ", castOther." + field.getName() + StringHelper.CLOSE_PAREN); } } --- 352,356 ---- Field field = (Field) fields.next(); if ( field.isIdentifier() ) { ! writer.println(" .append(this." + field.getGetterSignature() + ", castOther." + field.getGetterSignature() + StringHelper.CLOSE_PAREN); } } *************** *** 358,362 **** Field field = (Field) fields.next(); if ( field.isIdentifier() ) { ! writer.println(" .append(" + field.getName() + StringHelper.CLOSE_PAREN); } } --- 364,368 ---- Field field = (Field) fields.next(); if ( field.isIdentifier() ) { ! writer.println(" .append(" + field.getGetterSignature() + StringHelper.CLOSE_PAREN); } } *************** *** 418,421 **** --- 424,428 ---- for (Iterator fields = classMapping.getFields().iterator(); fields.hasNext();) { Field field = (Field) fields.next(); + if(field.isGeneratedAsProperty()) { // getter *************** *** 426,430 **** writer.println(" /** \n" + toJavaDoc(field.getMetaAsString("description"), 4) + " */"); } ! writer.println(" " + getAccessScope + " " + getTrueTypeName(field, class2classmap) + field.getGetterSignature() + " {"); writer.println(" return this." + field.getName() + ";"); writer.println(" }"); --- 433,437 ---- writer.println(" /** \n" + toJavaDoc(field.getMetaAsString("description"), 4) + " */"); } ! writer.println(" " + getAccessScope + " " + getTrueTypeName(field, class2classmap) + " " + field.getGetterSignature() + " {"); writer.println(" return this." + field.getName() + ";"); writer.println(" }"); *************** *** 495,498 **** --- 502,506 ---- } */ + } } return fieldTypes; |