long getSupplementaryFlags ( ClassSymbol c ) { if ( jrtIndex == null || ! jrtIndex . isInJRT ( c . classfile ) || c . name == names . module_info ) { return 0 ; } if ( supplementaryFlags == null ) { supplementaryFlags = new HashMap <> ( ) ; } Long flags = supplementaryFlags . get ( c . packge ( ) ) ; if ( flags == null ) { long newFlags = 0 ; try { JRTIndex . CtSym ctSym = jrtIndex . getCtSym ( c . packge ( ) . flatName ( ) ) ; Profile minProfile = Profile . DEFAULT ; if ( ctSym . proprietary ) newFlags |= PROPRIETARY ; if ( ctSym . minProfile != null ) minProfile = Profile . lookup ( ctSym . minProfile ) ; if ( profile != Profile . DEFAULT && minProfile . value > profile . value ) { newFlags |= NOT_IN_PROFILE ; } } catch ( IOException ignore ) { } supplementaryFlags . put ( c . packge ( ) , flags = newFlags ) ; } return flags ; }
Returns any extra flags for a class symbol . This information used to be provided using private annotations in the class file in ct . sym ; in time this information will be available from the module system .