public void generate( Model model, Properties parameters ) throws ModelloException { initialize( model, parameters ); requiresDomSupport = false; try { generateDom4jWriter(); } catch ( IOException ex ) { throw new ModelloException( "Exception while generating Dom4j Writer.", ex ); } }
private void writeAllClasses( Model objectModel, JClass jClass ) throws ModelloException { for ( ModelClass clazz : getClasses( objectModel ) ) { writeClass( clazz, jClass ); } }
private void generateDom4jWriter() throws ModelloException, IOException Model objectModel = getModel(); String packageName = objectModel.getDefaultPackageName( isPackageWithVersion(), getGeneratedVersion() ) + ".io.dom4j"; String marshallerName = getFileName( "Dom4jWriter" ); JSourceWriter sourceWriter = newJSourceWriter( packageName, marshallerName ); initHeader( jClass ); suppressAllWarnings( objectModel, jClass ); jClass.addImport( "org.dom4j.io.XMLWriter" ); addModelImports( jClass, null ); String root = objectModel.getRoot( getGeneratedVersion() ); ModelClass rootClass = objectModel.getClass( root, getGeneratedVersion() ); String rootElement = resolveTagName( rootClass ); String variableName = uncapitalise( root ); writeAllClasses( objectModel, jClass ); writeDomHelpers( jClass );
String uncapClassName = uncapitalise( className ); String namespace = xmlModelMetadata.getNamespace( getGeneratedVersion() ); sc.add( "Element element = parentElement.addElement( tagName, \"" + namespace + "\" );" ); String url = xmlModelMetadata.getSchemaLocation( getGeneratedVersion() ); List<ModelField> modelFields = getFieldsForXml( modelClass, getGeneratedVersion() ); String fieldTagName = resolveTagName( field, xmlFieldMetadata ); String value = uncapClassName + "." + getPrefix( javaFieldMetadata ) + capitalise( field.getName() ) + "()"; sc.add( getValueChecker( type, value, field ) ); + getValue( field.getType(), value, xmlFieldMetadata ) + " );" ); sc.add( "}" ); sc.add( "element.setText( " + getValue( contentField.getType(), contentValue, xmlFieldMetadata ) + " );" ); processField( field, xmlFieldMetadata, uncapClassName, sc, modelClass, jClass );
String fieldTagName = resolveTagName( field, xmlFieldMetadata ); String value = uncapClassName + "." + getPrefix( javaFieldMetadata ) + capitalise( field.getName() ) + "()"; sc.add( getValueChecker( type, value, association ) ); (XmlAssociationMetadata) association.getAssociationMetadata( XmlAssociationMetadata.ID ); String valuesTagName = resolveTagName( fieldTagName, xmlAssociationMetadata ); sc.add( getValueChecker( type, value, association ) ); if ( isClassInModel( association.getTo(), modelClass.getModel() ) ) sc.add( toType + " " + singular( uncapitalise( field.getName() ) ) + " = (" + toType + ") iter.next();" ); + singular( uncapitalise( field.getName() ) ) + " );" ); sc.add( getValueChecker( type, value, field ) ); sc.add( "Element assocElement = listElement.addElement( \"" + singular( associationName ) + "\" );" ); sc.add( "assocElement.addElement( \"key\" ).setText( key );" ); sc.add( getValueChecker( type, value, field ) ); + getValue( field.getType(), value, xmlFieldMetadata ) + " );" );