public String toString() { return "[Field: name=" + getName() + ", alias: " + alias + ", type: " + type + ", " + "version: " + getVersionRange() + "]"; }
private void writeNewSetLocation( ModelField field, String objectName, String trackerVariable, JSourceCode sc ) { writeNewSetLocation( "\"" + field.getName() + "\"", objectName, trackerVariable, sc ); }
private void writeNewSetLocation( ModelField field, String objectName, String trackerVariable, JSourceCode sc ) { writeNewSetLocation( "\"" + field.getName() + "\"", objectName, trackerVariable, sc ); }
private boolean createSetBuilderFieldToInstance( Set<String> ctorArgs, ModelField modelField, JSourceCode sc ) throws ModelloException { JavaFieldMetadata javaFieldMetadata = (JavaFieldMetadata) modelField.getMetadata( JavaFieldMetadata.ID ); // if it is not already set by the ctor and if the setter method is available if ( !ctorArgs.contains( modelField.getName() ) && javaFieldMetadata.isSetter() ) { sc.add( "instance.set" + capitalise( modelField.getName() ) + "( " + modelField.getName() + " );" ); return true; } return false; }
private String createHashCodeForField( ModelField identifier ) { String name = identifier.getName(); String type = identifier.getType(); if ( "boolean".equals( type ) ) { return "( " + name + " ? 0 : 1 )"; } else if ( "byte".equals( type ) || "char".equals( type ) || "short".equals( type ) || "int".equals( type ) ) { return "(int) " + name; } else if ( "long".equals( type ) ) { return "(int) ( " + name + " ^ ( " + name + " >>> 32 ) )"; } else if ( "float".equals( type ) ) { return "Float.floatToIntBits( " + name + " )"; } else if ( "double".equals( type ) ) { return "(int) ( Double.doubleToLongBits( " + identifier.getName() + " ) ^ ( Double.doubleToLongBits( " + identifier.getName() + " ) >>> 32 ) )"; } else { return "( " + name + " != null ? " + name + ".hashCode() : 0 )"; } }
public void addField( ModelField modelField ) { if ( fieldMap.containsKey( modelField.getName() ) ) { List<ModelField> fieldList = fieldMap.get( modelField.getName() ); for ( ModelField currentField : fieldList ) { if ( VersionUtil.isInConflict( modelField.getVersionRange(), currentField.getVersionRange() ) ) { throw new ModelloRuntimeException( "Duplicate field in " + getName() + ": " + modelField.getName() + "." ); } } } else { List<ModelField> fieldList = new ArrayList<ModelField>(); fieldMap.put( modelField.getName(), fieldList ); } getAllFields().add( modelField ); fieldMap.get( modelField.getName() ).add( modelField ); }
public void validateElement() throws ModelValidationException { validateFieldNotEmpty( "field", "name", getName() ); validateFieldNotEmpty( "field '" + getName() + "'", "type", type ); // TODO: these definitions are duplicated throughout. Defined centrally, and loop through in the various uses if ( !isPrimitive() && !isPrimitiveArray() ) { throw new ModelValidationException( "Field '" + getName() + "': Illegal type: '" + type + "'." ); } }
public Map<String, String> getAttributesForField( ModelField modelField ) { return fieldAttributes.get( modelField.getModelClass().getName() + ':' + modelField.getName() + ':' + modelField.getVersionRange() ); }
/** * Resolve XML tag name for a field. * * @param modelField the model field * @param xmlFieldMetadata the XML metadata of the field * @return the XML tag name for the field */ static String resolveTagName( ModelField modelField, XmlFieldMetadata xmlFieldMetadata ) { String tagName; if ( ( xmlFieldMetadata == null ) || ( xmlFieldMetadata.getTagName() == null ) ) { tagName = modelField.getName(); } else { // tag name is overridden by xml.tagName attribute tagName = xmlFieldMetadata.getTagName(); } return tagName; }
public boolean isModelVersionField() { Model model = modelClass.getModel(); VersionDefinition versionDefinition = model.getVersionDefinition(); return ( versionDefinition != null ) && versionDefinition.isFieldType() && ( versionDefinition.getValue().equals( getName() ) || versionDefinition.getValue().equals( alias ) ); } }
private String getFieldValue( String uncapClassName, ModelField field ) { JavaFieldMetadata javaFieldMetadata = (JavaFieldMetadata) field.getMetadata( JavaFieldMetadata.ID ); return uncapClassName + "." + getPrefix( javaFieldMetadata ) + capitalise( field.getName() ) + "()"; }
private void writeElementAttribute( JSourceCode sc, ModelField referenceIdentifierField, String value ) { if ( referenceIdentifierField instanceof DummyIdModelField ) { writeIdMapCheck( sc, value, referenceIdentifierField.getName() ); } else { String v = getValue( referenceIdentifierField.getType(), getFieldValue( value, referenceIdentifierField ), (XmlFieldMetadata) referenceIdentifierField.getMetadata( XmlFieldMetadata.ID ) ); sc.add( "serializer.writeAttribute( \"" + referenceIdentifierField.getName() + "\", " + v + " );" ); } }
private void writeFetchGroup( XMLWriter writer, String fetchGroupName, List fields, boolean onlyIfIsStashPart ) { if ( !fields.isEmpty() ) { writer.startElement( "fetch-group" ); writer.addAttribute( "name", fetchGroupName ); for ( Iterator it = fields.iterator(); it.hasNext(); ) { ModelField field = (ModelField) it.next(); if ( onlyIfIsStashPart && ( field instanceof ModelAssociation ) ) { StoreAssociationMetadata storeMetadata = getAssociationMetadata( (ModelAssociation) field ); if ( storeMetadata.isPart() != null && storeMetadata.isPart().booleanValue() ) { continue; } } writer.startElement( "field" ); writer.addAttribute( "name", field.getName() ); writer.endElement(); } writer.endElement(); // fetch-group } }
private void writeFetchGroup( XMLWriter writer, String fetchGroupName, List fields, boolean onlyIfIsStashPart ) { if ( !fields.isEmpty() ) { writer.startElement( "fetch-group" ); writer.addAttribute( "name", fetchGroupName ); for ( Iterator it = fields.iterator(); it.hasNext(); ) { ModelField field = (ModelField) it.next(); if ( onlyIfIsStashPart && ( field instanceof ModelAssociation ) ) { StoreAssociationMetadata storeMetadata = getAssociationMetadata( (ModelAssociation) field ); if ( storeMetadata.isPart() != null && storeMetadata.isPart().booleanValue() ) { continue; } } writer.startElement( "field" ); writer.addAttribute( "name", field.getName() ); writer.endElement(); } writer.endElement(); // fetch-group } }
/** * Add code to parse fields of a model class that are XML attributes. * * @param modelClass the model class * @param uncapClassName * @param sc the source code to add to * @throws ModelloException */ private void writeAttributes( ModelClass modelClass, String uncapClassName, JSourceCode sc ) throws ModelloException { for ( ModelField field : modelClass.getAllFields( getGeneratedVersion(), true ) ) { XmlFieldMetadata xmlFieldMetadata = (XmlFieldMetadata) field.getMetadata( XmlFieldMetadata.ID ); if ( xmlFieldMetadata.isAttribute() && !xmlFieldMetadata.isTransient() ) { writePrimitiveField( field, field.getType(), uncapClassName, "set" + capitalise( field.getName() ), sc ); } } }