static String makeExtensionClassName( String extendedClassname ) { String simpleName = ManClassUtil.getShortClassName( extendedClassname ); return FAVS_EXTENSIONS + extendedClassname + ".My" + simpleName + "Ext"; }
static String makeExtensionClassName( String extendedClassname ) { String simpleName = ManClassUtil.getShortClassName( extendedClassname ); return FAVS_EXTENSIONS + extendedClassname + ".My" + simpleName + "Ext"; }
/** * <p>Gets the class name minus the package name from a <code>Class</code>.</p> * * @param cls the class to get the short name for. * * @return the class name without the package name or an empty string */ public static String getShortClassName( Class cls ) { if( cls == null ) { return ""; } return getShortClassName( cls.getName() ); }
private String getTemplateFilePath() { String className = ManClassUtil.getShortClassName( _currClass.fqn ); String uri = _currClass.fileUri.toString(); int nameIndex = uri.lastIndexOf( className ); String fileExt = uri.substring( nameIndex + className.length() ); return '/' + _currClass.fqn.replace( '.', '/' ) + fileExt; }
private String getTemplateFilePath() { String className = ManClassUtil.getShortClassName( _currClass.fqn ); String uri = _currClass.fileUri.toString(); int nameIndex = uri.lastIndexOf( className ); String fileExt = uri.substring( nameIndex + className.length() ); return '/' + _currClass.fqn.replace( '.', '/' ) + fileExt; }
private SrcClass fullName( String fqn ) { _package = ManClassUtil.getPackage( fqn ); return name( ManClassUtil.getShortClassName( fqn ) ); }
FileGenerator( String fqn, URI fileUri, String fileName, String source ) { String className = ManClassUtil.getShortClassName( fqn ); String packageName = ManClassUtil.getPackage( fqn ); Tokenizer tokenizer = new Tokenizer(); _tokens = tokenizer.tokenize( source ); List<Directive> dirList = getDirectivesList( _tokens ); _dirMap = getDirectivesMap( dirList ); _currClass = new ClassInfo( dirList.iterator(), fqn, className, fileUri, fileName, _tokens.size() - 1 ); if( fileUri == null ) { // for tests to avoid files _currClass.testSource = source; } buildFile( packageName, dirList ); }
FileGenerator( String fqn, URI fileUri, String fileName, String source ) { String className = ManClassUtil.getShortClassName( fqn ); String packageName = ManClassUtil.getPackage( fqn ); Tokenizer tokenizer = new Tokenizer(); _tokens = tokenizer.tokenize( source ); List<Directive> dirList = getDirectivesList( _tokens ); _dirMap = getDirectivesMap( dirList ); _currClass = new ClassInfo( dirList.iterator(), fqn, className, fileUri, fileName, _tokens.size() - 1 ); if( fileUri == null ) { // for tests to avoid files _currClass.testSource = source; } buildFile( packageName, dirList ); }
private SrcAnnotationExpression makeSourcePositionAnnotation( Token token ) { int i = getFileIndex( token ); return new SrcAnnotationExpression( SourcePosition.class.getName() ) .addArgument( new SrcArgument( new SrcMemberAccessExpression( ManClassUtil.getShortClassName( _extensionFqn ), FIELD_FILE_URL + i ) ).name( "url" ) ) .addArgument( "feature", String.class, token._value.toString() ) .addArgument( "kind", String.class, "favorite" ) .addArgument( "offset", int.class, token._pos ) .addArgument( "length", int.class, token._value.length() ); }
private SrcAnnotationExpression makeSourcePositionAnnotation( Token token ) { int i = getFileIndex( token ); return new SrcAnnotationExpression( SourcePosition.class.getName() ) .addArgument( new SrcArgument( new SrcMemberAccessExpression( ManClassUtil.getShortClassName( _extensionFqn ), FIELD_FILE_URL + i ) ).name( "url" ) ) .addArgument( "feature", String.class, token._value.toString() ) .addArgument( "kind", String.class, "favorite" ) .addArgument( "offset", int.class, token._pos ) .addArgument( "length", int.class, token._value.length() ); }
if( names.contains( ManClassUtil.getShortClassName( tn.name ) ) )
private Pair<Symbol.ClassSymbol, JCTree.JCCompilationUnit> getClassSymbolForProducedClass( String fqn, BasicJavacTask[] task ) { StringWriter errors = new StringWriter(); // need javac with ManifoldJavaFileManager because the produced class must come from manifold task[0] = getJavacTask_ManFileMgr(); Symbol.ClassSymbol e = IDynamicJdk.instance().getTypeElement( task[0].getContext(), null, fqn ); if( e != null && e.getSimpleName().contentEquals( ManClassUtil.getShortClassName( fqn ) ) ) { JavacTrees trees = JavacTrees.instance( task[0].getContext() ); TreePath path = trees.getPath( e ); if( path != null ) { return new Pair<>( e, (JCTree.JCCompilationUnit)path.getCompilationUnit() ); } else { // TreePath is only applicable to a source file; // if fqn is not a source file, there is no compilation unit available return new Pair<>( e, null ); } } StringBuffer errorText = errors.getBuffer(); if( errorText.length() > 0 ) { throw new RuntimeException( "Compile errors:\n" + errorText ); } return null; }
.addStatement( new SrcRawStatement() .rawText( "JavascriptClass.setStaticProp(getEngine(), \"" + ManClassUtil.getShortClassName( fqn ) + "\", \"" + name + "\", val);" ) ) ); .addStatement( new SrcRawStatement() .rawText( "return JavascriptClass.getStaticProp(getEngine(), \"" + ManClassUtil.getShortClassName( fqn ) + "\", \"" + name + "\");" ) ) );
.addStatement( new SrcRawStatement() .rawText( "JavascriptClass.setStaticProp(getEngine(), \"" + ManClassUtil.getShortClassName( fqn ) + "\", \"" + name + "\", val);" ) ) ); .addStatement( new SrcRawStatement() .rawText( "return JavascriptClass.getStaticProp(getEngine(), \"" + ManClassUtil.getShortClassName( fqn ) + "\", \"" + name + "\");" ) ) );
static SrcClass genClass( String fqn, ProgramNode programNode ) { ClassNode classNode = programNode.getFirstChild( ClassNode.class ); SrcClass clazz = new SrcClass( fqn, SrcClass.Kind.Class ); clazz.addAnnotation( new SrcAnnotationExpression( SourcePosition.class ) .addArgument( "url", String.class, programNode.getUrl().toString() ) .addArgument( "feature", String.class, ManClassUtil.getShortClassName( fqn ) ) .addArgument( "offset", int.class, classNode.getStart().getOffset() ) .addArgument( "length", int.class, classNode.getEnd().getOffset() - classNode.getStart().getOffset() ) ); String superClass = classNode.getSuperClass(); if( superClass != null ) { clazz.superClass( superClass ); } clazz.imports( JavascriptClass.class ) .imports( SourcePosition.class ); clazz.addField( new SrcField( "ENGINE", ScriptEngine.class ) .modifiers( Modifier.PRIVATE | Modifier.STATIC | Modifier.VOLATILE ) .initializer( new SrcRawExpression( ("null") ) ) ); clazz.addField( new SrcField( "TIMESTAMP", long.class ) .modifiers( Modifier.PRIVATE | Modifier.STATIC | Modifier.VOLATILE ) .initializer( new SrcRawExpression( ("0") ) ) ); clazz.addField( new SrcField( "_context", ScriptObjectMirror.class ) ); addConstructor( clazz, classNode ); addUtilityMethods( clazz, classNode, fqn ); addMethods( fqn, clazz, classNode ); addProperties( fqn, clazz, classNode ); return clazz; }
static SrcClass genClass( String fqn, ProgramNode programNode ) { ClassNode classNode = programNode.getFirstChild( ClassNode.class ); SrcClass clazz = new SrcClass( fqn, SrcClass.Kind.Class ); clazz.addAnnotation( new SrcAnnotationExpression( SourcePosition.class ) .addArgument( "url", String.class, programNode.getUrl().toString() ) .addArgument( "feature", String.class, ManClassUtil.getShortClassName( fqn ) ) .addArgument( "offset", int.class, classNode.getStart().getOffset() ) .addArgument( "length", int.class, classNode.getEnd().getOffset() - classNode.getStart().getOffset() ) ); String superClass = classNode.getSuperClass(); if( superClass != null ) { clazz.superClass( superClass ); } clazz.imports( JavascriptClass.class ) .imports( SourcePosition.class ); clazz.addField( new SrcField( "ENGINE", ScriptEngine.class ) .modifiers( Modifier.PRIVATE | Modifier.STATIC | Modifier.VOLATILE ) .initializer( new SrcRawExpression( ("null") ) ) ); clazz.addField( new SrcField( "TIMESTAMP", long.class ) .modifiers( Modifier.PRIVATE | Modifier.STATIC | Modifier.VOLATILE ) .initializer( new SrcRawExpression( ("0") ) ) ); clazz.addField( new SrcField( "_context", ScriptObjectMirror.class ) ); addConstructor( clazz, classNode ); addUtilityMethods( clazz, classNode, fqn ); addMethods( fqn, clazz, classNode ); addProperties( fqn, clazz, classNode ); return clazz; }
String simpleName = ManClassUtil.getShortClassName( _fqn ); return new SrcClass( _fqn, SrcClass.Kind.Class ).imports( URL.class, SourcePosition.class ) .superClass( new SrcType( ImageIcon.class ) )
String simpleName = ManClassUtil.getShortClassName( _fqn ); return new SrcClass( _fqn, SrcClass.Kind.Class ).imports( URL.class, SourcePosition.class ) .superClass( new SrcType( ImageIcon.class ) )
.addStatement( new SrcRawStatement() .rawText( "return JavascriptClass.invokeStatic(getEngine(), \"" + ManClassUtil.getShortClassName( fqn ) + "\", \"" + node.getName() + "\"" + generateArgList( parameters.toParamList() ) + ");" ) ) );
.addStatement( new SrcRawStatement() .rawText( "return JavascriptClass.invokeStatic(getEngine(), \"" + ManClassUtil.getShortClassName( fqn ) + "\", \"" + node.getName() + "\"" + generateArgList( parameters.toParamList() ) + ");" ) ) );