namespace = extendedMetaData.getNamespace(ePackage);
List genClasses = genPackage.getGenClasses();
for (Iterator iterClass = genClasses.iterator(); iterClass.hasNext();)
{
GenClass genClass = (GenClass)iterClass.next();
String name = extendedMetaData.getName(genClass.getEcoreClass());
String className = genPackage.getInterfacePackageName() + "." + genClass.getInterfaceName();
classes.add( new PackageClassInfo( name, className, false, null ) );
List features = genClass.getGenFeatures();
for (Iterator iterFeatures = features.iterator(); iterFeatures.hasNext();)
{
GenFeature feature = (GenFeature)iterFeatures.next();
EStructuralFeature element = feature.getEcoreFeature();
EClassifier elementType = element.getEType();
if( elementType instanceof EClass )
{
// complex type
EClass eClass = (EClass)elementType;
GenClass genEClass = (GenClass)eclassGenClassMap.get(elementType);
if( genEClass != null )
{
name = extendedMetaData.getName(element);
String interfaceName = genEClass.getGenPackage().getInterfacePackageName()
+ '.' + genEClass.getInterfaceName();
boolean anonymous = extendedMetaData.isAnonymous(eClass);
// Build list of property names
List propertyClassNames = new ArrayList();
List properties = eClass.getEStructuralFeatures();
for (Iterator iterProperties = properties.iterator(); iterProperties.hasNext();)
{
EStructuralFeature property = (EStructuralFeature)iterProperties.next();
EClassifier propertyType = property.getEType();
if (propertyType instanceof EClass)
{
GenClass propertyGenClass = (GenClass)eclassGenClassMap.get(propertyType);
if( propertyGenClass != null )
{
String propertyClassName = propertyGenClass.getGenPackage().getInterfacePackageName() + '.'
+ propertyGenClass.getInterfaceName();
propertyClassNames.add(propertyClassName);
}
}
else if (propertyType instanceof EClassifier)
{