EStructuralFeature aStructuralFeature, Map aOptions) throws URISyntaxException {
FeatureDescription feat = uimaFactory.createFeatureDescription();
feat.setName(aStructuralFeature.getName());
String rangeTypeName = null;
String elementTypeName = null;
EAnnotation eannot = aStructuralFeature.getEAnnotation("http://uima.apache.org");
if (eannot != null) {
feat.setDescription((String) eannot.getDetails().get("description"));
// the UIMA type name to use may be recorded as an EAnnotation; this is
// particularly important for arrays and lists, since Ecore doesn't distinguish between
// these two possible implementations for a multi-valued property
rangeTypeName = (String) eannot.getDetails().get("uimaType");
// the elemnt type may also be specified as an EAnnotation; this is
// used for the case where an FSArray or FSList is NOT represented
// as a multi-valued property
elementTypeName = (String) eannot.getDetails().get("elementType");
}
EClassifier attrRangeType = aStructuralFeature.getEType();
// if range type wasn't specified in an EAnnotation, compute it ourselves
if (rangeTypeName == null) {