@ SneakyThrows public void parseCompilationUnit ( final Set < ConfigurationMetadataProperty > collectedProps , final Set < ConfigurationMetadataProperty > collectedGroups , final ConfigurationMetadataProperty p , final String typePath , final String typeName , final boolean indexNameWithBrackets ) { try ( val is = Files . newInputStream ( Paths . get ( typePath ) ) ) { val cu = StaticJavaParser . parse ( is ) ; new ConfigurationMetadataFieldVisitor ( collectedProps , collectedGroups , indexNameWithBrackets , typeName , sourcePath ) . visit ( cu , p ) ; if ( ! cu . getTypes ( ) . isEmpty ( ) ) { val decl = ClassOrInterfaceDeclaration . class . cast ( cu . getType ( 0 ) ) ; for ( var i = 0 ; i < decl . getExtendedTypes ( ) . size ( ) ; i ++ ) { val parentType = decl . getExtendedTypes ( ) . get ( i ) ; val instance = ConfigurationMetadataClassSourceLocator . getInstance ( ) ; val parentClazz = instance . locatePropertiesClassForType ( parentType ) ; val parentTypePath = ConfigurationMetadataClassSourceLocator . buildTypeSourcePath ( this . sourcePath , parentClazz . getName ( ) ) ; parseCompilationUnit ( collectedProps , collectedGroups , p , parentTypePath , parentClazz . getName ( ) , indexNameWithBrackets ) ; } } } }
Parse compilation unit .