private static ITypeManifold findJavascriptManifold( String fileExt ) { ITypeManifold tm = RuntimeManifoldHost.get().getSingleModule().getTypeManifolds().stream() .filter( e -> e.handlesFileExtension( fileExt ) ) .findFirst().orElse( null ); if( tm == null ) { throw new IllegalStateException( "Could not find type manifold for extension: " + fileExt ); } return tm; } }
private static ITypeManifold findJavascriptManifold( String fileExt ) { ITypeManifold tm = RuntimeManifoldHost.get().getSingleModule().getTypeManifolds().stream() .filter( e -> e.handlesFileExtension( fileExt ) ) .findFirst().orElse( null ); if( tm == null ) { throw new IllegalStateException( "Could not find type manifold for extension: " + fileExt ); } return tm; } }
private Symbol.ClassSymbol getRootClassSymbol() { if( _rootClassSymbol == null ) { ClassSymbols classSymbols = ClassSymbols.instance( RuntimeManifoldHost.get().getSingleModule() ); BasicJavacTask javacTask = classSymbols.getJavacTask_PlainFileMgr(); _rootClassSymbol = classSymbols.getClassSymbol( javacTask, _rootClass.getCanonicalName() ).getFirst(); } return _rootClassSymbol; }
private Symbol.ClassSymbol getRootClassSymbol() { if( _rootClassSymbol == null ) { ClassSymbols classSymbols = ClassSymbols.instance( RuntimeManifoldHost.get().getSingleModule() ); BasicJavacTask javacTask = classSymbols.getJavacTask_PlainFileMgr(); _rootClassSymbol = classSymbols.getClassSymbol( javacTask, _rootClass.getCanonicalName() ).getFirst(); } return _rootClassSymbol; }
private static boolean hasCallHandlerFromExtension( Class rootClass ) { Boolean isCallHandler = ICALL_HANDLER_MAP.get( rootClass ); if( isCallHandler != null ) { return isCallHandler; } String fqn = rootClass.getCanonicalName(); BasicJavacTask javacTask = RuntimeManifoldHost.get().getJavaParser().getJavacTask(); Pair<Symbol.ClassSymbol, JCTree.JCCompilationUnit> classSymbol = ClassSymbols.instance( RuntimeManifoldHost.get().getSingleModule() ).getClassSymbol( javacTask, fqn ); Pair<Symbol.ClassSymbol, JCTree.JCCompilationUnit> callHandlerSymbol = ClassSymbols.instance( RuntimeManifoldHost.get().getSingleModule() ).getClassSymbol( javacTask, ICallHandler.class.getCanonicalName() ); if( Types.instance( javacTask.getContext() ).isAssignable( classSymbol.getFirst().asType(), callHandlerSymbol.getFirst().asType() ) ) { // Nominally implements ICallHandler isCallHandler = true; } else { // Structurally implements ICallHandler isCallHandler = hasCallMethod( javacTask, classSymbol.getFirst() ); } ICALL_HANDLER_MAP.put( rootClass, isCallHandler ); return isCallHandler; }
private static boolean hasCallHandlerFromExtension( Class rootClass ) { Boolean isCallHandler = ICALL_HANDLER_MAP.get( rootClass ); if( isCallHandler != null ) { return isCallHandler; } String fqn = rootClass.getCanonicalName(); BasicJavacTask javacTask = RuntimeManifoldHost.get().getJavaParser().getJavacTask(); Pair<Symbol.ClassSymbol, JCTree.JCCompilationUnit> classSymbol = ClassSymbols.instance( RuntimeManifoldHost.get().getSingleModule() ).getClassSymbol( javacTask, fqn ); Pair<Symbol.ClassSymbol, JCTree.JCCompilationUnit> callHandlerSymbol = ClassSymbols.instance( RuntimeManifoldHost.get().getSingleModule() ).getClassSymbol( javacTask, ICallHandler.class.getCanonicalName() ); if( Types.instance( javacTask.getContext() ).isAssignable( classSymbol.getFirst().asType(), callHandlerSymbol.getFirst().asType() ) ) { // Nominally implements ICallHandler isCallHandler = true; } else { // Structurally implements ICallHandler isCallHandler = hasCallMethod( javacTask, classSymbol.getFirst() ); } ICALL_HANDLER_MAP.put( rootClass, isCallHandler ); return isCallHandler; }
Set<ITypeManifold> sps = RuntimeManifoldHost.get().getSingleModule().findTypeManifoldsFor( strType ); if( !sps.isEmpty() )