TypeSystemDescription result = UIMAFramework.getResourceSpecifierFactory()
.createTypeSystemDescription();
Iterator iter = aCasData.getFeatureStructures();
ArrayList typesArr = new ArrayList();
while (iter.hasNext()) {
FeatureStructure casFS = (FeatureStructure) iter.next();
TypeDescription newType = UIMAFramework.getResourceSpecifierFactory().createTypeDescription();
newType.setName(casFS.getType());
newType.setSupertypeName("uima.tcas.annotation");
newType.setDescription("CasData Type");
String features[] = casFS.getFeatureNames();
if (features != null) {
for (int i = 0; i < features.length; i++) {
String featName = features[i];
String rangeName = "";
String description = "";
PrimitiveValue pVal = (PrimitiveValue) casFS.getFeatureValue(featName);
if (pVal.get().getClass().getName().equals("java.lang.String")) {
System.out.println(" the feature is a String ");
rangeName = "uima.cas.String";
description = " featue of the casDataType";
}