if (i.hasNext()) { value.append(' '); }
  public void setWildcards(EStructuralFeature eStructuralFeature, List wildcards)  {    if (wildcards.isEmpty())    {      EAnnotation eAnnotation = getAnnotation(eStructuralFeature, false);      if (eAnnotation != null)      {        eAnnotation.getDetails().remove("wildcards");        eAnnotation.getDetails().remove("name");      }    }    else    {      String namespace = getNamespace(eStructuralFeature.getEContainingClass().getEPackage());      EAnnotation eAnnotation = getAnnotation(eStructuralFeature, true);      StringBuffer value = new StringBuffer();      for (Iterator i = wildcards.iterator(); i.hasNext(); )      {        String wildcard = (String)i.next();        if (wildcard == null)        {          if (namespace == null)          {            value.append("##targetNamespace");          }          else           {            value.append("##local");          }        }        else if (wildcard.startsWith("!##"))        {          if (namespace == null ?                 wildcard.length() == 3 :                 wildcard.endsWith(namespace) && wildcard.length() == namespace.length() + 3)          {            value.append("##other");          }          else          {            value.append(wildcard);          }        }        else if (wildcard.equals(namespace))        {          value.append("##targetNamespace");        }        else        {          value.append(wildcard);        }      }      eAnnotation.getDetails().put("wildcards", value.toString());      eAnnotation.getDetails().put("name","");    }  }