{
    if (pattern.isEmpty())
    {
      EAnnotation eAnnotation = getAnnotation(eDataType, false);
      if (eAnnotation != null)
      {
        eAnnotation.getDetails().remove("pattern");
      }
    }
    else
    {
      EAnnotation eAnnotation = getAnnotation(eDataType, true);
      StringBuffer result = new StringBuffer();
      for (int i = 0, size = pattern.size(); i < size; ++i)
      {
        result.append(replace(replace(pattern.get(i), "%","%25"), " ", "%20"));
        result.append(' ');
      }
      eAnnotation.getDetails().put("pattern", result.substring(0, result.length() - 1));
    }
    getExtendedMetaData(eDataType).setPatternFacet(pattern);
  }