code: private boolean requiresFullyQualifiedName() {
          String currentPackage = PackageScope.get();
          if (currentPackage != null) {
              if (definition != null && definition.getPackageName() != null && definition.getFullyQualifiedName() != null) {
                  String conflictingFQCN = getDefinition().getFullyQualifiedName().replace(definition.getPackageName(), currentPackage);
                  if (!conflictingFQCN.equals(getFullyQualifiedName()) && DefinitionRepository.getRepository().getDefinition(conflictingFQCN) != null) {
                      return true;
                  }
              }
          }
  
          Map<String, String> referenceMap = DefinitionRepository.getRepository().getReferenceMap();
          if (referenceMap != null && referenceMap.containsKey(definition.getName())) {
              String fqn = referenceMap.get(definition.getName());
              if (!getDefinition().getFullyQualifiedName().equals(fqn)) {
                  return true;
              }
          }
          return false;
      }
docs: Checks if the ref needs to be done by fully qualified name. Why? Because an other reference
  to a class with the same name but different package has been made already.