@ Requires ( "ClassName.isBinaryName(className)" ) protected ContractAnalyzer analyze ( String className ) throws IOException { /* Skip helper classes. */ if ( className . endsWith ( JavaUtils . HELPER_CLASS_SUFFIX ) ) { return null ; } /* Skip interfaces. */ String helperFileName = className + JavaUtils . HELPER_CLASS_SUFFIX + Kind . CLASS . extension ; if ( JavaUtils . resourceExists ( loader , helperFileName ) ) { return null ; } /* Try to get contracts class file. */ InputStream contractStream = JavaUtils . getContractClassInputStream ( loader , className ) ; if ( contractStream == null ) { return null ; } return extractContracts ( new ClassReader ( contractStream ) ) ; }
Extracts contract methods for the specified class if necessary .