From: <max...@us...> - 2003-02-02 17:34:12
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java In directory sc8-pr-cvs1:/tmp/cvs-serv26669/src/net/sf/hibernate/tool/hbm2java Modified Files: Field.java ClassMapping.java BasicRenderer.java Log Message: toString() now also includes persistent fields from superclass. superclass'es fields comes first, subclasses last. Why ? Because the key is in the superclass, and we like the key first. + small cleanup Index: Field.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java/Field.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Field.java 20 Jan 2003 12:48:16 -0000 1.5 --- Field.java 2 Feb 2003 17:34:09 -0000 1.6 *************** *** 62,65 **** --- 62,69 ---- } + public String getGetterType() { + return (getType().toLowerCase().equals("boolean") ) ? " is" : " get"; + } + public String getType() { String type = classType.getFullyQualifiedName(); *************** *** 124,128 **** Collection c= getMeta(attribute); ! if(c==null) { return StringHelper.EMPTY_STRING; } else { --- 128,132 ---- Collection c= getMeta(attribute); ! if(c==null || c.isEmpty()) { return StringHelper.EMPTY_STRING; } else { *************** *** 135,138 **** --- 139,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. *************** *** 158,161 **** --- 172,183 ---- return foreignKeys; } + + /** + * Method getGetterSignature. + * @return String + */ + public String getGetterSignature() { + return getGetterType() + getAsSuffix() + "()"; + } } Index: ClassMapping.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java/ClassMapping.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ClassMapping.java 2 Feb 2003 11:49:12 -0000 1.10 --- ClassMapping.java 2 Feb 2003 17:34:09 -0000 1.11 *************** *** 425,429 **** return result; } ! public List getAllFieldsForFullConstructor() { List result = getFieldsForSupersFullConstructor(); --- 425,442 ---- return result; } ! ! public List getAllFields() { ! List result = new ArrayList(); ! ! if(getSuperClassMapping()!=null) { ! result.addAll(getSuperClassMapping().getAllFields()); ! } else { ! result.addAll(getFields()); ! } ! return result; ! } ! ! ! public List getAllFieldsForFullConstructor() { List result = getFieldsForSupersFullConstructor(); Index: BasicRenderer.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java/BasicRenderer.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** BasicRenderer.java 2 Feb 2003 16:26:07 -0000 1.8 --- BasicRenderer.java 2 Feb 2003 17:34:09 -0000 1.9 *************** *** 118,228 **** writer.println(); ! // fields ! for ( Iterator fields = classMapping.getFields().iterator(); fields.hasNext(); ) { ! Field field = (Field) fields.next(); ! ! String fieldScope = getFieldScope(field, "scope-field", "private"); ! writer.println( ! " /** " + ! ( field.isNullable() && !field.isIdentifier() ? "nullable " : StringHelper.EMPTY_STRING ) + ! ( field.isIdentifier() ? "identifier" : "persistent" ) ! + " field */"); ! writer.println( ! " " + fieldScope + " " + ! shortenType( field.getType(), classMapping.getImports() ) + ! ' ' + ! field.getName() + ! ';' ! ); ! ! writer.println(); ! } ! ! // full constructor ! List allFieldsForFullConstructor = classMapping.getAllFieldsForFullConstructor(); ! ! writer.println(" /** full constructor */"); ! String fullCons = " public " + classMapping.getGeneratedName() + StringHelper.OPEN_PAREN; ! ! ! for(Iterator fields = allFieldsForFullConstructor.iterator(); fields.hasNext();) { ! Field field = (Field) fields.next(); ! fullCons = fullCons + shortenType(getTrueTypeName(field, class2classmap), classMapping.getImports()) + " " + field.getName(); ! if(fields.hasNext()) { ! fullCons = fullCons + ", "; ! } ! } ! ! writer.println(fullCons + ") {"); ! //invoke super to initialize superclass... ! List supersConstructorFields = classMapping.getFieldsForSupersFullConstructor(); ! if (!supersConstructorFields.isEmpty()) { ! writer.print(" super("); ! for (Iterator fields = supersConstructorFields.iterator(); fields.hasNext();) { ! Field field = (Field) fields.next(); ! writer.print(field.getName()); ! if(fields.hasNext()) { ! writer.print(StringHelper.COMMA_SPACE); ! } ! } ! writer.println(");"); ! } ! ! // initialisation of localfields ! for(Iterator fields = classMapping.getLocalFieldsForFullConstructor().iterator(); fields.hasNext();) { ! Field field = (Field) fields.next(); ! writer.println(" this." + field.getName() + " = " + field.getName() + ";"); ! } ! writer.println(" }"); ! writer.println(); ! ! // no args constructor (if fullconstructor had any arguments!) ! if (allFieldsForFullConstructor.size() > 0) { ! writer.println(" /** default constructor */"); ! writer.println(" public " + classMapping.getGeneratedName() + "() {"); ! writer.println(" }"); ! writer.println(); ! } ! ! // minimal constructor (only if the fullconstructor had any arguments) ! if ((allFieldsForFullConstructor.size() > 0) && classMapping.needsMinimalConstructor()) { ! ! List allFieldsForMinimalConstructor = classMapping.getAllFieldsForMinimalConstructor(); ! writer.println(" /** minimal constructor */"); ! ! String minCons = " public " + classMapping.getGeneratedName() + StringHelper.OPEN_PAREN; ! for (Iterator fields = allFieldsForMinimalConstructor.iterator(); fields.hasNext();) { ! Field field = (Field) fields.next(); ! minCons = minCons + shortenType(getTrueTypeName(field, class2classmap), classMapping.getImports()) + " " + field.getName(); ! if (fields.hasNext()) { ! minCons = minCons + ", "; ! } ! } ! ! writer.println(minCons + ") {"); ! // invoke super to initialize superclass... ! List supersMinConstructorFields = classMapping.getFieldsForSupersMinimalConstructor(); ! if (!supersMinConstructorFields.isEmpty()) { ! writer.print(" super("); ! for (Iterator fields = supersMinConstructorFields.iterator(); fields.hasNext();) { ! Field field = (Field) fields.next(); ! writer.print(field.getName()); ! if(fields.hasNext()) { ! writer.print(StringHelper.COMMA_SPACE); ! } ! } ! writer.println(");"); ! } ! // initialisation of localfields ! for (Iterator fields = classMapping.getLocalFieldsForMinimalConstructor().iterator(); fields.hasNext();) { ! Field field = (Field) fields.next(); ! writer.println(" this." + field.getName() + " = " + field.getName() + ";"); ! } ! writer.println(" }"); ! writer.println(); ! } ! ! doFieldAccessors(classMapping, class2classmap, writer); --- 118,125 ---- writer.println(); ! doFields(classMapping, writer); ! doConstructors(classMapping, class2classmap, writer); ! doFieldAccessors(classMapping, class2classmap, writer); *************** *** 241,244 **** --- 138,251 ---- } + public void doConstructors(ClassMapping classMapping, Map class2classmap, PrintWriter writer) { + // full constructor + List allFieldsForFullConstructor = classMapping.getAllFieldsForFullConstructor(); + + writer.println(" /** full constructor */"); + String fullCons = " public " + classMapping.getGeneratedName() + StringHelper.OPEN_PAREN; + + + for(Iterator fields = allFieldsForFullConstructor.iterator(); fields.hasNext();) { + Field field = (Field) fields.next(); + fullCons = fullCons + shortenType(getTrueTypeName(field, class2classmap), classMapping.getImports()) + " " + field.getName(); + if(fields.hasNext()) { + fullCons = fullCons + ", "; + } + } + + writer.println(fullCons + ") {"); + //invoke super to initialize superclass... + List supersConstructorFields = classMapping.getFieldsForSupersFullConstructor(); + if (!supersConstructorFields.isEmpty()) { + writer.print(" super("); + for (Iterator fields = supersConstructorFields.iterator(); fields.hasNext();) { + Field field = (Field) fields.next(); + writer.print(field.getName()); + if(fields.hasNext()) { + writer.print(StringHelper.COMMA_SPACE); + } + } + writer.println(");"); + } + + // initialisation of localfields + for(Iterator fields = classMapping.getLocalFieldsForFullConstructor().iterator(); fields.hasNext();) { + Field field = (Field) fields.next(); + writer.println(" this." + field.getName() + " = " + field.getName() + ";"); + } + writer.println(" }"); + writer.println(); + + // no args constructor (if fullconstructor had any arguments!) + if (allFieldsForFullConstructor.size() > 0) { + writer.println(" /** default constructor */"); + writer.println(" public " + classMapping.getGeneratedName() + "() {"); + writer.println(" }"); + writer.println(); + } + + // minimal constructor (only if the fullconstructor had any arguments) + if ((allFieldsForFullConstructor.size() > 0) && classMapping.needsMinimalConstructor()) { + + List allFieldsForMinimalConstructor = classMapping.getAllFieldsForMinimalConstructor(); + writer.println(" /** minimal constructor */"); + + String minCons = " public " + classMapping.getGeneratedName() + StringHelper.OPEN_PAREN; + for (Iterator fields = allFieldsForMinimalConstructor.iterator(); fields.hasNext();) { + Field field = (Field) fields.next(); + minCons = minCons + shortenType(getTrueTypeName(field, class2classmap), classMapping.getImports()) + " " + field.getName(); + if (fields.hasNext()) { + minCons = minCons + ", "; + } + } + + writer.println(minCons + ") {"); + // invoke super to initialize superclass... + List supersMinConstructorFields = classMapping.getFieldsForSupersMinimalConstructor(); + if (!supersMinConstructorFields.isEmpty()) { + writer.print(" super("); + for (Iterator fields = supersMinConstructorFields.iterator(); fields.hasNext();) { + Field field = (Field) fields.next(); + writer.print(field.getName()); + if(fields.hasNext()) { + writer.print(StringHelper.COMMA_SPACE); + } + } + writer.println(");"); + } + + // initialisation of localfields + for (Iterator fields = classMapping.getLocalFieldsForMinimalConstructor().iterator(); fields.hasNext();) { + Field field = (Field) fields.next(); + writer.println(" this." + field.getName() + " = " + field.getName() + ";"); + } + writer.println(" }"); + writer.println(); + } + } + + public void doFields(ClassMapping classMapping, PrintWriter writer) { + // fields + for ( Iterator fields = classMapping.getFields().iterator(); fields.hasNext(); ) { + Field field = (Field) fields.next(); + + String fieldScope = getFieldScope(field, "scope-field", "private"); + writer.println( + " /** " + + ( field.isNullable() && !field.isIdentifier() ? "nullable " : StringHelper.EMPTY_STRING ) + + ( field.isIdentifier() ? "identifier" : "persistent" ) + + " field */"); + writer.println( + " " + fieldScope + " " + + shortenType( field.getType(), classMapping.getImports() ) + + ' ' + + field.getName() + + ';' + ); + + writer.println(); + } + } + public void doEqualsAndHashCode(ClassMapping classMapping, PrintWriter writer) { if ( classMapping.mustImplementEquals() ) { *************** *** 275,282 **** writer.println(" public String toString() {"); writer.println(" return new ToStringBuilder(this)"); ! for (Iterator fields = classMapping.getFields().iterator(); fields.hasNext();) { Field field = (Field) fields.next(); if (field.isIdentifier() || field.getMetaAsBool("use-in-tostring")) { ! writer.println(" .append(\"" + field.getName() + "\"," + field.getName() + ")"); } } --- 282,289 ---- writer.println(" public String toString() {"); writer.println(" return new ToStringBuilder(this)"); ! for (Iterator fields = classMapping.getAllFields().iterator(); fields.hasNext();) { Field field = (Field) fields.next(); if (field.isIdentifier() || field.getMetaAsBool("use-in-tostring")) { ! writer.println(" .append(\"" + field.getName() + "\", " + field.getGetterSignature() + ")"); } } *************** *** 294,303 **** // getter String getAccessScope = getFieldScope(field, "scope-get", "public"); ! String getterType = ( field.getType().toLowerCase().equals("boolean") ) ? " is" : " get"; if(field.getMeta("description")!=null) { writer.println(" /** \n" + toJavaDoc(field.getMetaAsString("description"), 4) + " */"); } ! writer.println(" " + getAccessScope + " " + getTrueTypeName(field, class2classmap) + getterType + field.getAsSuffix() + "() {"); writer.println(" return this." + field.getName() + ";"); writer.println(" }"); --- 301,310 ---- // getter String getAccessScope = getFieldScope(field, "scope-get", "public"); ! if(field.getMeta("description")!=null) { writer.println(" /** \n" + toJavaDoc(field.getMetaAsString("description"), 4) + " */"); } ! writer.println(" " + getAccessScope + " " + getTrueTypeName(field, class2classmap) + field.getGetterSignature() + " {"); writer.println(" return this." + field.getName() + ";"); writer.println(" }"); |