fillFieldTypes( typeDescr,
packageDescr );
if ( !typeDescr.getNamespace().equals( packageDescr.getNamespace() ) ) {
// If the type declaration is for a different namespace, process that separately.
PackageDescr altDescr = new PackageDescr( typeDescr.getNamespace() );
if ( typeDescr instanceof TypeDeclarationDescr ) {
altDescr.addTypeDeclaration( (TypeDeclarationDescr) typeDescr );
} else if ( typeDescr instanceof EnumDeclarationDescr ) {
altDescr.addEnumDeclaration( (EnumDeclarationDescr) typeDescr );
}
for ( ImportDescr imp : packageDescr.getImports() ) {
altDescr.addImport( imp );
}
if ( !getPackageRegistry().containsKey( altDescr.getNamespace() ) ) {
newPackage( altDescr );
}
mergePackage( this.pkgRegistryMap.get( altDescr.getNamespace() ), altDescr );
}
}
// sort declarations : superclasses must be generated first