String fieldClass = "java.lang.String";
String fieldLabelValue = "Simple Property";
String fieldDescriptionValue = "This is a programmatically added String property";
int fieldPositionValue = 1;
ObjectPropertyTO baseTypeProp = new ObjectPropertyTO(fieldName, fieldClass, false, true);
baseTypeProp.addAnnotation(annotationDefs.get(AnnotationDefinitionTO.LABEL_ANNOTATION), AnnotationDefinitionTO.VALUE_PARAM, fieldLabelValue);
baseTypeProp.addAnnotation(annotationDefs.get(AnnotationDefinitionTO.DESCRIPTION_ANNOTATION), AnnotationDefinitionTO.VALUE_PARAM, fieldDescriptionValue);
baseTypeProp.addAnnotation(annotationDefs.get(AnnotationDefinitionTO.POSITION_ANNOTATION), AnnotationDefinitionTO.VALUE_PARAM, fieldPositionValue);
dataObject.setProperties(Arrays.asList(baseTypeProp));
GenerationResult result = modelerService.saveModel(dataModel, project);