return null;
throw new IllegalArgumentException("Invalid value: '"+objectValue+"' for datatype :"+eDataType.getName());
  public String convertToString(EDataType eDataType, Object objectValue)  {    if (getEPackage() != eDataType.getEPackage())    {      throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");    }    EDataType baseType = ExtendedMetaData.INSTANCE.getBaseType(eDataType);    if (baseType != null)    {      return EcoreUtil.convertToString(baseType, objectValue);    }    EDataType itemType = ExtendedMetaData.INSTANCE.getItemType(eDataType);    if (itemType != null)    {      if (objectValue == null)      {        return null;      }      List list = (List)objectValue;      if (list.isEmpty())      {        return "";      }      StringBuffer result = new StringBuffer();      for (Iterator i = list.iterator(); i.hasNext(); )      {        Object item = i.next();        result.append(EcoreUtil.convertToString(itemType, item));        result.append(' ');      }      return result.substring(0, result.length() - 1);    }    List memberTypes = ExtendedMetaData.INSTANCE.getMemberTypes(eDataType);    if (!memberTypes.isEmpty())    {      for (Iterator i = memberTypes.iterator(); i.hasNext(); )      {        EDataType memberType = (EDataType)i.next();        if (memberType.isInstance(objectValue))        {          return EcoreUtil.convertToString(memberType, objectValue);        }      }      return null;    }    if (objectValue instanceof Character)    {      int charInt = ((Character) objectValue).charValue();      Integer value = new Integer(charInt);      return value.toString();    }    else if (objectValue instanceof Date)    {      return EDATE_FORMATS[0].format((Date)objectValue);    }    else if (objectValue != null)    {      return objectValue.toString();    }    else    {      return null;    }  }