private void writeNewSetLocation( String key, String objectName, String trackerVariable, JSourceCode sc ) { writeNewLocation( trackerVariable, sc ); writeSetLocation( key, objectName, trackerVariable, sc ); }
private void writeAllClasses( Model objectModel, JClass jClass ) throws ModelloException { for ( ModelClass clazz : getClasses( objectModel ) ) { writeClass( clazz, jClass ); } }
@Override protected boolean isRelevant( ModelClass modelClass ) { return isJavaEnabled( modelClass ); }
private void writeHelpers( JClass jClass ) { jClass.addMethod(getTrimmedValueMethod()); jClass.addMethod(getInterpolatedTrimmed()); jClass.addMethod(getRequiredAttributeValueMethod()); jClass.addMethod(getBooleanValueMethod()); jClass.addMethod(getBooleanValue2Method()); jClass.addMethod( getCharacterValueMethod() ); jClass.addMethod(convertNumericalType( "getIntegerValue", JType.INT, "Integer.valueOf( s ).intValue()", "an integer" )); jClass.addMethod(convertNumericalType( "getShortValue", JType.SHORT, "Short.valueOf( s ).shortValue()", "a short integer" )); jClass.addMethod(convertNumericalType( "getByteValue", JType.BYTE, "Byte.valueOf( s ).byteValue()", "a byte" )); jClass.addMethod(convertNumericalType( "getLongValue", JType.LONG, "Long.valueOf( s ).longValue()", "a long integer" )); jClass.addMethod(convertNumericalType( "getFloatValue", JType.FLOAT, "Float.valueOf( s ).floatValue()", "a floating point number" )); jClass.addMethod(convertNumericalType( "getDoubleValue", JType.DOUBLE, "Double.valueOf( s ).doubleValue()", "a floating point number" )); jClass.addMethod( getDateValueMethod() ); jClass.addMethod( getDateValue2Method() ); jClass.addMethod( getCheckFieldWithDuplicateMethod() ); jClass.addMethod( getCheckUnknonwElement2Method() ); jClass.addMethod( getCheckUnknownAttributeMethod() ); jClass.addMethod( getNextTagMethod() ); }
private void generateXpp3Reader() throws ModelloException, IOException Model objectModel = getModel(); objectModel.getDefaultPackageName( isPackageWithVersion(), getGeneratedVersion() ) + ".io.xpp3"; String unmarshallerName = getFileName( "Xpp3Reader" + ( isLocationTracking() ? "Ex" : "" ) ); JSourceWriter sourceWriter = newJSourceWriter( packageName, unmarshallerName ); initHeader( jClass ); suppressAllWarnings( objectModel, jClass ); jClass.addImport( "java.text.DateFormat" ); addModelImports( jClass, null ); writeAllClassesParser( objectModel, jClass ); writeAllClassesReaders( objectModel, jClass ); writeHelpers( jClass ); writeBuildDomMethod( jClass );
Model objectModel = getModel(); String packageName = objectModel.getDefaultPackageName( isPackageWithVersion(), getGeneratedVersion() ) + ".io.xpp3"; String marshallerName = getFileName( "Xpp3Writer" ); JSourceWriter sourceWriter = newJSourceWriter( packageName, marshallerName ); initHeader( jClass ); suppressAllWarnings( objectModel, jClass ); addModelImports( jClass, null ); String root = objectModel.getRoot( getGeneratedVersion() ); ModelClass rootClass = objectModel.getClass( root, getGeneratedVersion() ); String rootElement = resolveTagName( rootClass ); String rootElementParameterName = uncapitalise( root ); marshall.addParameter( new JParameter( new JClass( "Writer" ), "writer" ) ); marshall.addParameter( new JParameter( new JClass( root ), rootElementParameterName ) ); writeAllClasses( objectModel, jClass ); createWriteDomMethod( jClass );
String uncapClassName = uncapitalise( className ); namespace = xmlModelMetadata.getNamespace( getGeneratedVersion() ); sc.add( "serializer.setPrefix( \"\", \"" + 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( "serializer.text( " + getValue( contentField.getType(), contentValue, xmlFieldMetadata ) + " );" ); String fieldTagName = resolveTagName( field, xmlFieldMetadata ); String value = uncapClassName + "." + getPrefix( javaFieldMetadata ) + capitalise( field.getName() ) + "()"; sc.add( getValueChecker( type, value, association ) ); String valuesTagName = resolveTagName( fieldTagName, xmlAssociationMetadata ); sc.add( getValueChecker( type, value, association ) );
String capClassName = capitalise( className ); String uncapClassName = uncapitalise( className ); addTrackingParameters( unmarshall ); writeNewSetLocation( "\"\"", uncapClassName, null, sc ); List<ModelField> modelFields = getFieldsForXml( modelClass, getGeneratedVersion() ); contentField = writeClassAttributesParser( modelFields, uncapClassName, rootElement, sc, jClass ); writePrimitiveField( contentField, contentField.getType(), uncapClassName, uncapClassName, "\"\"", "set" + capitalise( contentField.getName() ), sc ); processField( field, xmlFieldMetadata, addElse, sc, uncapClassName, jClass );
String fieldTagName = resolveTagName( field, xmlFieldMetadata ); String capFieldName = capitalise( field.getName() ); String singularName = singular( field.getName() ); writePrimitiveField( field, field.getType(), objectName, objectName, "\"" + field.getName() + "\"", "set" + capFieldName, sc ); String valuesTagName = resolveTagName( fieldTagName, xmlAssociationMetadata ); boolean inModel = isClassInModel( association.getTo(), field.getModelClass().getModel() ); writeNewSetLocation( field, objectName, LOCATION_VAR + "s", sc ); + capitalise( singular( locationField ) ) + "( \"" + field.getName() + "\" );" ); sc.add( "if ( " + LOCATION_VAR + "s == null )" ); sc.add( "{" ); sc.indent(); writeNewSetLocation( field, objectName, LOCATION_VAR + "s", sc ); sc.unindent(); sc.add( "}" ); writePrimitiveField( association, association.getTo(), associationName, LOCATION_VAR + "s", key, "add", sc ); writeNewSetLocation( field, objectName, LOCATION_VAR + "s", sc );
private void writeAllClassesReaders( Model objectModel, JClass jClass ) { ModelClass root = objectModel.getClass( objectModel.getRoot( getGeneratedVersion() ), getGeneratedVersion() ); for ( ModelClass clazz : getClasses( objectModel ) ) { if ( isTrackingSupport( clazz ) ) { continue; } writeClassReaders( clazz, jClass, root.getName().equals( clazz.getName() ) ); } }
private void writeAllClassesParser( Model objectModel, JClass jClass ) { ModelClass root = objectModel.getClass( objectModel.getRoot( getGeneratedVersion() ), getGeneratedVersion() ); for ( ModelClass clazz : getClasses( objectModel ) ) { if ( isTrackingSupport( clazz ) ) { continue; } writeClassParser( clazz, jClass, root.getName().equals( clazz.getName() ) ); } }
public void generate( Model model, Properties parameters ) throws ModelloException initialize( model, parameters ); requiresDomSupport = false; if ( isLocationTracking() ) locationTracker = model.getLocationTracker( getGeneratedVersion() ); if ( locationTracker == null ) ( (ModelClassMetadata) locationTracker.getMetadata( ModelClassMetadata.ID ) ).getLocationTracker(); sourceTracker = model.getSourceTracker( getGeneratedVersion() ); generateXpp3Reader();
String capClassName = capitalise( className ); addTrackingParameters( unmarshall ); String tagName = resolveTagName( modelClass ); String variableName = uncapitalise( className ); addTrackingParameters( unmarshall ); addTrackingParameters( unmarshall );
String tagName = resolveTagName(field, xmlFieldMetadata); writeNewLocation( null, sc ); if ( locationTracker != null && "?".equals( locationKey ) ) writeSetLocation( locationKey, locatorName, null, sc ); writeSetLocation( locationKey, locatorName, null, sc );
String tagName = resolveTagName( field, xmlFieldMetadata ); sc.indent(); writePrimitiveField( field, field.getType(), objectName, objectName, "\"" + field.getName() + "\"", "set" + capitalise( field.getName() ), sc );
private void writeSetLocation( String key, String objectName, String trackerVariable, JSourceCode sc ) { if ( locationTracker == null ) { return; } String variable = ( trackerVariable != null ) ? trackerVariable : LOCATION_VAR; sc.add( objectName + ".set" + capitalise( singular( locationField ) ) + "( " + key + ", " + variable + " );" ); }
public void generate( Model model, Properties parameters ) throws ModelloException { initialize( model, parameters ); requiresDomSupport = false; try { generateXpp3Writer(); } catch ( IOException ex ) { throw new ModelloException( "Exception while generating XPP3 Writer.", ex ); } }
private void writeNewSetLocation( ModelField field, String objectName, String trackerVariable, JSourceCode sc ) { writeNewSetLocation( "\"" + field.getName() + "\"", objectName, trackerVariable, sc ); }
private JMethod getDateValue2Method() { JMethod method; method = new JMethod( "getDateValue", new JClass( "java.util.Date" ), null ); method.addException( new JClass( "XmlPullParserException" ) ); method.getModifiers().makePrivate(); method.addParameter( new JParameter( new JClass( "String" ), "s" ) ); method.addParameter( new JParameter( new JClass( "String" ), "attribute" ) ); method.addParameter(new JParameter(new JClass("String"), "dateFormat")); method.addParameter(new JParameter(new JClass("XmlPullParser"), "parser")); method.addException(new JClass("XmlPullParserException")); writeDateParsingHelper(method.getSourceCode(), "new XmlPullParserException( e.getMessage(), parser, e )"); return method; }