1 18 package org.apache.beehive.netui.compiler.model.validation; 19 20 import org.apache.beehive.netui.compiler.model.schema.validator11.FormDocument; 21 import org.apache.beehive.netui.compiler.model.schema.validator11.FieldDocument; 22 23 import java.util.HashMap ; 24 import java.util.Map ; 25 import java.util.Iterator ; 26 27 class ValidatableEntity 28 { 29 private String _entityName; 30 private Map _fields = new HashMap (); 31 32 33 public ValidatableEntity( String entityName ) 34 { 35 _entityName = entityName; 36 } 37 38 protected String getEntityName() 39 { 40 return _entityName; 41 } 42 43 public void addField( ValidatableField field ) 44 { 45 _fields.put( field.getPropertyName(), field ); 46 } 47 48 public ValidatableField getField( String fieldName ) 49 { 50 return ( ValidatableField ) _fields.get( fieldName ); 51 } 52 53 public void writeToXMLBean( FormDocument.Form formElement ) 54 { 55 assert formElement.getName().equals( _entityName ); 56 57 FieldDocument.Field[] existingFieldElements = formElement.getFieldArray(); 58 for ( Iterator i = _fields.values().iterator(); i.hasNext(); ) 59 { 60 ValidatableField field = ( ValidatableField ) i.next(); 61 FieldDocument.Field fieldElementToUse = null; 62 String fieldPropertyName = field.getPropertyName(); 63 64 for ( int j = 0; j < existingFieldElements.length; j++ ) 68 { 69 FieldDocument.Field existingFieldElement = existingFieldElements[j]; 70 71 if ( fieldPropertyName.equals( existingFieldElement.getProperty() ) ) 72 { 73 fieldElementToUse = existingFieldElement; 74 break; 75 } 76 } 77 78 if ( fieldElementToUse == null ) 79 { 80 fieldElementToUse = formElement.addNewField(); 81 fieldElementToUse.setProperty( fieldPropertyName ); 82 } 83 84 field.writeToXMLBean( fieldElementToUse ); 85 } 86 } 87 } 88 | Popular Tags |