String fullName = typeDescr.getType().getFullName(); Class existingClass = pkgRegistry.getPackage().getTypeResolver().resolveType( typeDescr.getType().getFullName() ); ClassFieldInspector cfi = new ClassFieldInspector( existingClass ); if ( ! typeDescr.getFields().containsKey( existingFieldName ) ) { type.setValid(false); this.results.add(new TypeDeclarationError(typeDescr, "New declaration of "+typeDescr.getType().getFullName() + " does not include field " + existingFieldName ) ); } else { if ( ! fldType.equals( type.getTypeClassDef().getField( existingFieldName ).getTypeName() ) ) { type.setValid(false); this.results.add(new TypeDeclarationError(typeDescr, "New declaration of "+typeDescr.getType().getFullName() + " redeclared field " + existingFieldName + " : \n" + "existing : " + fldType + " vs declared : " + declaredField.getPattern().getObjectType() ) ); this.results.add(new TypeDeclarationError(typeDescr, "New declaration of "+typeDescr.getType().getFullName() +" declares a different set of fields \n" + "existing : " + cfi.getFieldTypesField() + "\n" + e.printStackTrace(); type.setValid(false); this.results.add( new TypeDeclarationError( typeDescr, "Unable to redeclare " + typeDescr.getType().getFullName() + " : " + e.getMessage() ) ); } catch ( ClassNotFoundException e ) { type.setValid(false); this.results.add( new TypeDeclarationError( typeDescr, "Unable to redeclare " + typeDescr.getType().getFullName() + " : " + e.getMessage() ) ); this.results.add( new TypeDeclarationError(typeDescr, typeDescr.getType().getFullName()
void registerGeneratedType(AbstractClassTypeDeclarationDescr typeDescr) { String fullName = typeDescr.getType().getFullName(); generatedTypes.add( fullName ); }
for ( AbstractClassTypeDeclarationDescr typeDescr : packageDescr.getClassAndEnumDeclarationDescrs() ) { String qName = typeDescr.getType().getFullName(); Class typeClass = getClassForType(qName); if (typeClass == null) { if (tail.equals( typeDescr.getTypeName() )) { typeDescr.setNamespace( imp.substring( 0, separator ) ); typeClass = getClassForType(typeDescr.getType().getFullName()); break; if (qname.equals(descr.getType())) { typeDescr.getAnnotations().putAll(descr.getAnnotations()); break; } else if (typeDescr.getType().equals(descr.getType())) { break; unresolvedTypeDefinitions ); Class clazz = pkgRegistry.getTypeResolver().resolveType(typeDescr.getType().getFullName()); type.setTypeClass( clazz );
/** * 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; } }
try { PackageRegistry reg = this.pkgRegistryMap.get( typeDescr.getNamespace() ); String availableName = typeDescr.getType().getFullName(); Class<?> resolvedType = reg.getTypeResolver().resolveType( availableName ); updateTraitDefinition( type, try { PackageRegistry reg = this.pkgRegistryMap.get( typeDescr.getNamespace() ); String availableName = typeDescr.getType().getFullName(); Class<?> resolvedType = reg.getTypeResolver().resolveType( availableName ); if ( ! Thing.class.isAssignableFrom( resolvedType ) ) { tempDescr.setType( target, typeDescr.getNamespace() ); tempDescr.addSuperType( typeDescr.getType() ); TypeDeclaration tempDeclr = new TypeDeclaration( target ); tempDeclr.setKind( TypeDeclaration.Kind.TRAIT ); String fullName = typeDescr.getType().getFullName(); JavaDialectRuntimeData dialect = (JavaDialectRuntimeData) pkgRegistry.getDialectRuntimeRegistry().getDialectData( "java" ); switch ( type.getKind() ) {