Analyzer::Java::Wicket
Inherits Analyzer < FileHelper < Reference < Object
Constants
JAVA_EXTENSION = "java"
MAPPER_CLASSES = Set {"MountedMapper", "PackageMapper", "ResourceMapper", "IndexedParamUrlCodingStrategy", "MixedParamUrlCodingStrategy", "MixedParamHybridUrlCodingStrategy", "HybridUrlCodingStrategy", "QueryStringUrlCodingStrategy"}
PACKAGE_MAPPER_CLASSES = Set {"PackageMapper"}
RESOURCE_MAPPER_CLASSES = Set {"ResourceMapper"}
REST_LAMBDA_METHODS = Set {"get", "post", "put", "delete", "patch", "head", "options", "trace"}
SPLIT_ARGUMENTS_RULES = Noir::TopLevelSplit::Rules.new(nest: ((Noir::TopLevelSplit::Nest::Paren | Noir::TopLevelSplit::Nest::Bracket) | Noir::TopLevelSplit::Nest::Brace) | Noir::TopLevelSplit::Nest::Angle, quotes: "\"", escape: Noir::TopLevelSplit::Escape::InQuotes, strip: true, empties: Noir::TopLevelSplit::Empties::DropTrailing, per_kind: false, clamp: true)
Rules::JAVA plus Nest::Angle and minus the single-quote quote style.
Both divergences are load-bearing here: mountPage("/x", Foo.class) and
MyPage<T> both reach this splitter, so angles must nest, while a Java
'c' char literal never wraps a mount path and treating ' as a quote
would let an apostrophe inside a string swallow the rest of the list.
File-local because wicket is the only splitter with this combination.
WICKET_MARKERS = ["org.apache.wicket", "WebApplication", "mountPage", "mountPackage", "mountResource", "MountPath", "MountedMapper", "PackageMapper", "ResourceMapper", "org.wicketstuff.rest", "MethodMapping", "ResourcePath", "LambdaRestMounter"]
Class methods
tech_name
SourceInstance methods
analyze
Sourcetech
Instance-side view of the same declaration. The per-file rescues live on
this base class, which has no way to name the analyzer that is running
inside them, so a skipped file could not be attributed to a tech.
Deriving it from analyzer_for keeps the name written exactly once.