Package org.fife.rsta.ac.js.ast.parser
Class RhinoJavaScriptAstParser
- java.lang.Object
-
- org.fife.rsta.ac.js.ast.parser.JavaScriptParser
-
- org.fife.rsta.ac.js.ast.parser.JavaScriptAstParser
-
- org.fife.rsta.ac.js.ast.parser.RhinoJavaScriptAstParser
-
public class RhinoJavaScriptAstParser extends JavaScriptAstParser
Rhino specific JavaScriptAstParser. Reads the importPackage and importClass from the parsed document and adds to the RhinoJavaScriptTypesFactory.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.fife.rsta.ac.js.ast.parser.JavaScriptAstParser
JavaScriptAstParser.ProcessFunctionType
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.LinkedHashSet<java.lang.String>importClassesprivate java.util.LinkedHashSet<java.lang.String>importPackagesstatic java.lang.StringPACKAGES-
Fields inherited from class org.fife.rsta.ac.js.ast.parser.JavaScriptParser
dot, options, provider
-
-
Constructor Summary
Constructors Constructor Description RhinoJavaScriptAstParser(SourceCompletionProvider provider, int dot, TypeDeclarationOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclearImportCache(SourceCompletionProvider provider)Clear the importPackage and importClass cacheCodeBlockconvertAstNodeToCodeBlock(org.mozilla.javascript.ast.AstRoot root, java.util.Set<org.fife.ui.autocomplete.Completion> set, java.lang.String entered)Converts AstRoot to CodeBlockprivate java.lang.StringextractNameFromSrc(java.lang.String src)protected voiditerateNode(org.mozilla.javascript.ast.AstNode child, java.util.Set<org.fife.ui.autocomplete.Completion> set, java.lang.String entered, CodeBlock block, int offset)Overridden iterateNode to intercept Token.EXPR_RESULT and check for importPackage and importClass named nodes If found, then process them and extract the imports and add them to RhinoJavaScriptTypesFactory then return otherwise call super.iterateNode()private voidmergeImportCache(java.util.HashSet<java.lang.String> packages, java.util.HashSet<java.lang.String> classes)private voidprocessImportClass(java.lang.String src)Adds class name to RhinoJavaScriptTypesFactoryprivate booleanprocessImportNode(org.mozilla.javascript.ast.AstNode child, java.util.Set<org.fife.ui.autocomplete.Completion> set, java.lang.String entered, CodeBlock block, int offset)Look for text importPackage and importClass and add to cacheprivate voidprocessImportPackage(java.lang.String src)Adds package name to RhinoJavaScriptTypesFactorystatic java.lang.StringremovePackages(java.lang.String src)-
Methods inherited from class org.fife.rsta.ac.js.ast.parser.JavaScriptAstParser
getDot, getProvider
-
Methods inherited from class org.fife.rsta.ac.js.ast.parser.JavaScriptParser
isPreProcessing
-
-
-
-
Field Detail
-
PACKAGES
public static final java.lang.String PACKAGES
- See Also:
- Constant Field Values
-
importClasses
private java.util.LinkedHashSet<java.lang.String> importClasses
-
importPackages
private java.util.LinkedHashSet<java.lang.String> importPackages
-
-
Constructor Detail
-
RhinoJavaScriptAstParser
public RhinoJavaScriptAstParser(SourceCompletionProvider provider, int dot, TypeDeclarationOptions options)
-
-
Method Detail
-
clearImportCache
public void clearImportCache(SourceCompletionProvider provider)
Clear the importPackage and importClass cache- Parameters:
provider- SourceCompletionProvider
-
convertAstNodeToCodeBlock
public CodeBlock convertAstNodeToCodeBlock(org.mozilla.javascript.ast.AstRoot root, java.util.Set<org.fife.ui.autocomplete.Completion> set, java.lang.String entered)
Description copied from class:JavaScriptParserConverts AstRoot to CodeBlock- Overrides:
convertAstNodeToCodeBlockin classJavaScriptAstParser- Parameters:
root- AstRoot to iterateset- completions setentered- text entered by user- Returns:
- CodeBlock tree
-
mergeImportCache
private void mergeImportCache(java.util.HashSet<java.lang.String> packages, java.util.HashSet<java.lang.String> classes)
-
iterateNode
protected void iterateNode(org.mozilla.javascript.ast.AstNode child, java.util.Set<org.fife.ui.autocomplete.Completion> set, java.lang.String entered, CodeBlock block, int offset)Overridden iterateNode to intercept Token.EXPR_RESULT and check for importPackage and importClass named nodes If found, then process them and extract the imports and add them to RhinoJavaScriptTypesFactory then return otherwise call super.iterateNode()- Overrides:
iterateNodein classJavaScriptAstParser
-
processImportNode
private boolean processImportNode(org.mozilla.javascript.ast.AstNode child, java.util.Set<org.fife.ui.autocomplete.Completion> set, java.lang.String entered, CodeBlock block, int offset)Look for text importPackage and importClass and add to cache- Parameters:
child- AstNode to check. This will always be Token.EXPR_RESULT AstNodeset- Set to add completionsentered- text entered by user if applicableblock- CodeBlockoffset- position of AstNode within document- Returns:
- true if either importPackage or importClass is found
-
removePackages
public static java.lang.String removePackages(java.lang.String src)
-
extractNameFromSrc
private java.lang.String extractNameFromSrc(java.lang.String src)
- Parameters:
src- String to extract name- Returns:
- import statement from withing the ( and ) e.g. importPackage(java.util) importClass(java.util.HashSet) returns java.util or java.util.HashSet respectively
-
processImportPackage
private void processImportPackage(java.lang.String src)
Adds package name to RhinoJavaScriptTypesFactory- Parameters:
src- source text to extract the package
-
processImportClass
private void processImportClass(java.lang.String src)
Adds class name to RhinoJavaScriptTypesFactory- Parameters:
src- source text to extract the class name
-
-