// Handle a complex type
if (elementType instanceof EClass) {
EClass eClass = (EClass)elementType;
GenClass genClass = genClasses.get(elementType);
QName qname = new QName(extendedMetaData.getNamespace(currentEPackage),
extendedMetaData.getName(element));
String interfaceName = (DYNAMIC_SDO & genOptions) == DYNAMIC_SDO ? "commonj.sdo.DataObject" : genClass
.getGenPackage().getInterfacePackageName()
+ '.' + genClass.getInterfaceName();
boolean anonymous = extendedMetaData.isAnonymous(eClass);
// Build list of property class names
List<String> propertyClassNames=new ArrayList<String>();
for (EStructuralFeature feature : (List<EStructuralFeature>)eClass.getEStructuralFeatures()) {
EClassifier propertyType = feature.getEType();
if (propertyType instanceof EClass) {
GenClass propertyGenClass = genClasses.get(propertyType);
String propertyClassName = (DYNAMIC_SDO & genOptions) == DYNAMIC_SDO ? "commonj.sdo.DataObject"
: propertyGenClass.getGenPackage().getInterfacePackageName() + '.'
+ '.' + propertyGenClass.getInterfaceName();
propertyClassNames.add(propertyClassName);
} else if (propertyType instanceof EClassifier) {
String propertyClassName = propertyType.getInstanceClass().getName();
propertyClassNames.add(propertyClassName);
}