Class OverrideStubGenerator
java.lang.Object
org.ek9lang.compiler.fuzz.OverrideStubGenerator
Generates override method stubs for child classes derived from harvested parent methods.
Produces 6 pattern variations: correct override, wrong return type, wrong param count,
missing override keyword, narrowed access, and purity mismatch.
Extracted from
TemplateEnrichmentGenerator.-
Method Summary
Modifier and TypeMethodDescription(package private) static StringaddOverrideStubs(String body, List<HarvestedTemplate> templates, String parentName, Random random) Adds override method stubs to the body of a child class.(package private) static voidappendCorrectOverride(StringBuilder sb, HarvestedMethod method, String indent) Case 0: Correct override with matching signature including parameters.(package private) static voidappendMissingOverrideKeyword(StringBuilder sb, HarvestedMethod method, String indent) Case 3: Missing 'override' keyword (just redeclare) — targets E05120.(package private) static voidappendNarrowedAccessOverride(StringBuilder sb, HarvestedMethod method, String indent) Case 4: Narrowed access (public to private) — targets E05130.(package private) static voidappendPurityMismatchOverride(StringBuilder sb, HarvestedMethod method, String indent) Case 5: Purity mismatch (non-pure overriding pure) — targets E05140/E05190.(package private) static voidappendWrongParamCountOverride(StringBuilder sb, HarvestedMethod method, String indent) Case 2: Wrong parameter count (extra parameter) — targets E05110.(package private) static voidappendWrongReturnOverride(StringBuilder sb, HarvestedMethod method, String indent) Case 1: Wrong return type — targets E05100.
-
Method Details
-
addOverrideStubs
static String addOverrideStubs(String body, List<HarvestedTemplate> templates, String parentName, Random random) Adds override method stubs to the body of a child class. Picks 0-2 non-private, non-abstract parent methods and generates one of 6 override patterns for each.- Parameters:
body- the current class body texttemplates- the harvested templates to search for parent methodsparentName- the name of the parent typerandom- the random source- Returns:
- the body with override stubs appended
-
appendCorrectOverride
Case 0: Correct override with matching signature including parameters. -
appendWrongReturnOverride
Case 1: Wrong return type — targets E05100. -
appendWrongParamCountOverride
Case 2: Wrong parameter count (extra parameter) — targets E05110. -
appendMissingOverrideKeyword
Case 3: Missing 'override' keyword (just redeclare) — targets E05120. -
appendNarrowedAccessOverride
Case 4: Narrowed access (public to private) — targets E05130. -
appendPurityMismatchOverride
Case 5: Purity mismatch (non-pure overriding pure) — targets E05140/E05190.
-