// 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; }
@Override public IFunctionType getFunctionType() { if (_constructor instanceof IGosuConstructorInfo && !IGosuClass.ProxyUtil.isProxy(_constructor.getOwnersType())) { return (IFunctionType) ((IGosuConstructorInfo) _constructor).getDfs().getType(); } else { return null; } }
@Override public IGenericTypeVariable[] getTypeVariables() { if (_constructor instanceof IGosuConstructorInfo && !IGosuClass.ProxyUtil.isProxy(_constructor.getOwnersType())) { return ((IGosuConstructorInfo) _constructor).getTypeVariables(); } else { return null; } }
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()); }
@Override public boolean couldHaveTypeVariables() { return _constructor instanceof IGosuMethodInfo && !IGosuClass.ProxyUtil.isProxy(_constructor.getOwnersType()); }