public TypeDeclarationError(AbstractClassTypeDeclarationDescr typeDescr, String errorMessage) { super(typeDescr.getResource()); this.errorMessage = errorMessage; this.line = new int[] { typeDescr.getLine() }; this.namespace = typeDescr.getNamespace(); }
private void fillFieldTypes( AbstractClassTypeDeclarationDescr typeDescr, PackageDescr packageDescr ) { for (TypeFieldDescr field : typeDescr.getFields().values()) { String declaredType = field.getPattern().getObjectType(); if (declaredType != null) { int separator = declaredType.lastIndexOf( "." ); boolean qualified = separator > 0; // check if a simple name corresponds to a f.q.n. if (!qualified) { declaredType = resolveType( declaredType, packageDescr, this.pkgRegistryMap.get( typeDescr.getNamespace() ) ); field.getPattern().setObjectType( declaredType ); } } } }
/** * Checks whether a declaration is novel, or is a retagging of an external * one * * @param typeDescr * @return */ private boolean isNovelClass( AbstractClassTypeDeclarationDescr typeDescr ) { try { PackageRegistry reg = this.pkgRegistryMap.get( typeDescr.getNamespace() ); if ( reg != null ) { String availableName = typeDescr.getType().getFullName(); reg.getTypeResolver().resolveType( availableName ); return false; } else { return false; } } catch (ClassNotFoundException cnfe) { return true; } }
if ( isEmpty( typeDescr.getNamespace() ) && typeDescr.getFields().isEmpty() ) { if (pkg != null) { typeDescr.setNamespace( pkg.getName() ); int index = typeDescr.getNamespace() != null && !typeDescr.getNamespace().isEmpty() ? typeDescr.getNamespace().length() + 1 : 0; typeDescr.setTypeName( clz.getName().substring( index ) ); if ( isEmpty( typeDescr.getNamespace() ) ) { packageDescr ); if ( !typeDescr.getNamespace().equals( packageDescr.getNamespace() ) ) { PackageDescr altDescr = new PackageDescr( typeDescr.getNamespace() ); if ( typeDescr instanceof TypeDeclarationDescr ) { altDescr.addTypeDeclaration( (TypeDeclarationDescr) typeDescr ); if (!typeDescr.getNamespace().equals( packageDescr.getNamespace() )) { continue;
TypeDeclaration previousTypeDeclaration = this.pkgRegistryMap.get( typeDescr.getNamespace() ).getPackage().getTypeDeclaration( typeDescr.getTypeName() );
if (!isNovelClass( typeDescr )) { try { PackageRegistry reg = this.pkgRegistryMap.get( typeDescr.getNamespace() ); String availableName = typeDescr.getType().getFullName(); Class<?> resolvedType = reg.getTypeResolver().resolveType( availableName ); PackageRegistry reg = this.pkgRegistryMap.get( typeDescr.getNamespace() ); String availableName = typeDescr.getType().getFullName(); Class<?> resolvedType = reg.getTypeResolver().resolveType( availableName ); tempDescr.setNamespace( typeDescr.getNamespace() ); tempDescr.setFields( typeDescr.getFields() ); tempDescr.setType( target, typeDescr.getNamespace() ); tempDescr.addSuperType( typeDescr.getType() ); TypeDeclaration tempDeclr = new TypeDeclaration( target );