raymond-jgler / java-class-jacksonizer

A tool to bulk annotate existing constructor with given annotations, or to add a default constructor to Java classes if without.
MIT License
3 stars 0 forks source link

Verify If Need To Add / Ignore Java Static Import #8

Closed raymond-jgler closed 11 months ago

raymond-jgler commented 11 months ago

Issue description

After generation :

import com.company.domain.Domain01;

class Dummy
  private InnerClass field1;
  Dummy(Domain01.InnerClass param1) {
   field1 = param1;
  }

Expected output

import com.company.domain.Domain01;

class Dummy
  private InnerClass field1;
  Dummy(InnerClass param1) {
   field1 = param1;
  }
raymond-jgler commented 11 months ago

Having considered : [evalFieldString method] (https://github.com/trgpnt/Java-Class-Annotatable-Constructor-Templater/blob/b89e8eff02dc058ab98b65323e8f339294685ae0/src/main/java/com/aggregated/BuildAnnotatableCodePhase.java#L771)

Possible hotfix: in evalFieldString method before returning fieldType, prepend this code block:

 if (fieldType.contains(DOT)) {
        final String importRegion = getImportRegion();
        if (StringUtils.isEmpty(importRegion)) {
          return fieldType;
        }
        if (importRegion.contains(fieldType)) {
          fieldType = fieldType.substring(fieldType.indexOf(DOT) + 1, fieldType.length());
        }
  }
raymond-jgler commented 11 months ago

Fixed in https://github.com/trgpnt/Java-Class-Annotatable-Constructor-Templater/commit/0b2b3a7c9093530b60a6d77c1e5005eaa648de6a