protected void bindValue ( String valueString , PropertyEditor editor , BioPAXElement bpe , Model model ) { if ( log . isDebugEnabled ( ) ) { log . debug ( "Binding: " + bpe + ' ' + bpe . getModelInterface ( ) + " has " + editor + ' ' + valueString ) ; } Object value = ( valueString == null ) ? null : valueString . trim ( ) ; if ( editor instanceof ObjectPropertyEditor ) { value = model . getByID ( valueString ) ; value = resourceFixes ( bpe , value ) ; if ( value == null ) { throw new IllegalBioPAXArgumentException ( "Illegal or Dangling Value/Reference: " + valueString + " (element: " + bpe . getUri ( ) + " property: " + editor . getProperty ( ) + ")" ) ; } } if ( editor == null ) { log . error ( "Editor is null. This probably means an invalid BioPAX property. Failed to set " + valueString ) ; } else //is either EnumeratedPropertyEditor or DataPropertyEditor { editor . setValueToBean ( value , bpe ) ; } }
This method binds the value to the bpe . Actual assignment is handled by the editor - but this method performs most of the workarounds and also error handling due to invalid parameters .