private static IRType getTrueOwningType(IConstructorInfo mi) {
    if (mi instanceof IJavaConstructorInfo) {
      // We have to get the owner type from the method because it may be different from the owning
      // type e.g., entity aspects see ContactGosuAspect.AllAdresses
      IJavaClassConstructor m = ((IJavaConstructorInfo) mi).getJavaConstructor();
      if (m != null) {
        return IRTypeResolver.getDescriptor(m.getEnclosingClass());
      }
    }

    return IRTypeResolver.getDescriptor(mi.getOwnersType());
  }
  // TODO - AHK - Duplicate of method in AbstractElementTransformer
  @Override
  public IType getOwningIType() {
    IType owningType;
    if (_constructor instanceof IJavaConstructorInfo) {
      // We have to get the owner type from the method because it may be
      // different from the owning type e.g., entity aspects see ContactGosuAspect.AllAdresses
      IJavaClassConstructor m = ((IJavaConstructorInfo) _constructor).getJavaConstructor();
      if (m != null) {
        owningType = TypeSystem.get(m.getEnclosingClass());
      } else {
        owningType = _constructor.getOwnersType();
      }
    } else {
      owningType = _constructor.getOwnersType();
    }

    return owningType;
  }