Class OverrideStubGenerator

java.lang.Object
org.ek9lang.compiler.fuzz.OverrideStubGenerator

final class OverrideStubGenerator extends Object
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 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 text
      templates - the harvested templates to search for parent methods
      parentName - the name of the parent type
      random - the random source
      Returns:
      the body with override stubs appended
    • appendCorrectOverride

      static void appendCorrectOverride(StringBuilder sb, HarvestedMethod method, String indent)
      Case 0: Correct override with matching signature including parameters.
    • appendWrongReturnOverride

      static void appendWrongReturnOverride(StringBuilder sb, HarvestedMethod method, String indent)
      Case 1: Wrong return type — targets E05100.
    • appendWrongParamCountOverride

      static void appendWrongParamCountOverride(StringBuilder sb, HarvestedMethod method, String indent)
      Case 2: Wrong parameter count (extra parameter) — targets E05110.
    • appendMissingOverrideKeyword

      static void appendMissingOverrideKeyword(StringBuilder sb, HarvestedMethod method, String indent)
      Case 3: Missing 'override' keyword (just redeclare) — targets E05120.
    • appendNarrowedAccessOverride

      static void appendNarrowedAccessOverride(StringBuilder sb, HarvestedMethod method, String indent)
      Case 4: Narrowed access (public to private) — targets E05130.
    • appendPurityMismatchOverride

      static void appendPurityMismatchOverride(StringBuilder sb, HarvestedMethod method, String indent)
      Case 5: Purity mismatch (non-pure overriding pure) — targets E05140/E05190.