code: 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);
  		}
  	}
docs: 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.
  @param valueString to be assigned
  @param editor that maps to the property
  @param bpe to be bound
  @param model to be populated.