if (resolved.isFinal() || resolved.isAbstract())
throw new IllegalArgumentException("Cannot create class based proxies for final/non static/abstract classes");
final List<IInterceptorManipulator> abilities = this.getInterceptorAbilities(type);
InterceptorProxyTypeAbstract proxy = wrapper ?
new InterceptorProxyTypeCJCW(this, abilities, type, type.getName() + "$CJCW$" + proxySuffix) :
new InterceptorProxyTypeCJC(this, abilities, type, type.getName() + "$CJC$" + proxySuffix);
proxy.addProxyConstructors();
proxy.addProxyMethods();
proxy.addProxyAbilities();