/** * Java Language Plugin * * Provides Java-specific AST handling, taint patterns, and framework detection. */ import type { Node as SyntaxNode } from 'web-tree-sitter'; import type { TypeInfo, CallInfo, ImportInfo } from '../../types/index.js'; import type { LanguageNodeTypes, ExtractionContext, FrameworkInfo, TaintSourcePattern, TaintSinkPattern } from '../types.js'; import { BaseLanguagePlugin } from './base.js'; /** * Java language plugin implementation. */ export declare class JavaPlugin extends BaseLanguagePlugin { readonly id: "java"; readonly name = "Java"; readonly extensions: string[]; readonly wasmPath = "tree-sitter-java.wasm"; readonly nodeTypes: LanguageNodeTypes; /** Cache: maps a parse Tree to its var-name → simple-type map. */ private readonly _typeMapCache; /** * Detect Java frameworks from imports and annotations. */ detectFramework(context: ExtractionContext): FrameworkInfo | undefined; /** * Java-specific taint source patterns. * These supplement the YAML configuration. */ getBuiltinSources(): TaintSourcePattern[]; /** * Java-specific taint sink patterns. * These supplement the YAML configuration. */ getBuiltinSinks(): TaintSinkPattern[]; /** * Walk `tree` once and build a map of { variableName → simpleTypeName }. * Covers both field declarations and local variable declarations. * Generics and array brackets are stripped: `List` → `List`, `int[]` → `int`. * Result is cached per Tree instance so subsequent calls are O(1). */ private buildVarTypeMap; /** * Get receiver type from a method invocation node. */ getReceiverType(node: SyntaxNode, context: ExtractionContext): string | undefined; /** * Check if node is a Java string literal. */ isStringLiteral(node: SyntaxNode): boolean; /** * Get string value from Java string literal. */ getStringValue(node: SyntaxNode): string | undefined; extractTypes(context: ExtractionContext): TypeInfo[]; extractCalls(context: ExtractionContext): CallInfo[]; extractImports(context: ExtractionContext): ImportInfo[]; extractPackage(context: ExtractionContext): string | undefined; } //# sourceMappingURL=java.d.ts.map