private void generateInterfaceMethod(CtClass ctClass, String userParamName) throws Exception { ClassPool classPool = component.getClassPool(); CtClass managementExceptionClass = classPool.get(ManagementException.class.getName()); // add the getter method CtClass[] getterParameters = {}; CtClass[] getterExceptions = {managementExceptionClass}; CtMethod getterMethod = CtNewMethod.abstractMethod(CtClass.booleanType, "get" + userParamName + "NotificationsEnabled", getterParameters, getterExceptions, ctClass); ctClass.addMethod(getterMethod); // add the setter method CtClass[] setterParameters = {CtClass.booleanType}; CtClass[] setterExceptions = {managementExceptionClass}; CtMethod setterMethod = CtNewMethod.abstractMethod(CtClass.voidType, "set" + userParamName + "NotificationsEnabled", setterParameters, setterExceptions, ctClass); ctClass.addMethod(setterMethod); }
private void generateAbstractMethod(CtClass ctClass, CtMethod method) throws Exception { String methodName = method.getName(); ClassPool classPool = component.getClassPool(); CtClass managementExceptionClass = classPool.get(ManagementException.class.getName()); CtClass sampleStatisticsClass = classPool.get(SampleStatistics.class.getName()); CtMethod newMethod = null; if (methodName.startsWith("increment")) { CtClass[] parameters = {CtClass.booleanType}; CtClass[] exceptions = {managementExceptionClass}; String usageParameterName = methodName.substring("increment".length()); newMethod = CtNewMethod.abstractMethod(CtClass.longType, "get" + usageParameterName, parameters, exceptions, ctClass); // exposing the usage parameter as a JMX attribute for easier read-only access, for example, via SNMP ctClass.addMethod(CtNewMethod.abstractMethod(CtClass.longType, "get" + usageParameterName, null, exceptions, ctClass)); } else if (methodName.startsWith("sample")) { CtClass[] parameters = {CtClass.booleanType}; CtClass[] exceptions = {managementExceptionClass}; newMethod = CtNewMethod.abstractMethod(sampleStatisticsClass, "get" + methodName.substring("sample".length()), parameters, exceptions, ctClass); } else { return; } ctClass.addMethod(newMethod); } }
CtClass[] parameters = {CtClass.booleanType}; CtClass[] exceptions = {managementExceptionClass}; newMethod = CtNewMethod.abstractMethod(CtClass.longType, "get" + methodName.substring("increment".length()), parameters, CtClass[] parameters = {CtClass.booleanType}; CtClass[] exceptions = {managementExceptionClass}; newMethod = CtNewMethod.abstractMethod(sampleStatisticsClass, "get" + methodName.substring("sample".length()), parameters,
CtMethod method = abstractMethod(returnType, m.getName(), Arrays.copyOf(params, length), empty, inter); if (used.add(method)) { inter.addMethod(method); CtMethod getter = abstractMethod(returnType, String.format("get%s", capitalize(name)), empty, empty, inter); if (used.add(getter)) { inter.addMethod(getter);
ctMethod = CtNewMethod.abstractMethod(returnType, method.getName(), parameters , exceptions, declaring); ctMethod = CtNewMethod.abstractMethod(returnType, method.getName(), null , exceptions, declaring);
ctMethod = CtNewMethod.abstractMethod(returnType, method.getOperationName(), parameters , exceptions, declaring); ctMethod = CtNewMethod.abstractMethod(returnType, method.getOperationName(), null , exceptions, declaring);
ResourceClientProxy.class.getMethod(name); } catch (NoSuchMethodException nsme) { CtMethod method = CtNewMethod.abstractMethod(pool.get(ResourceClientProxy.Measurement.class.getName()), ResourceClientProxy.getterName(key), new CtClass[0], new CtClass[0], customClass); customClass.addMethod(method); .abstractMethod(ConfigurationClassBuilder.translateConfiguration(pool, o .getDefinition().getResultsConfigurationDefinition()), ResourceClientProxy.simpleName(key), params,
CtMethod newMethod = CtNewMethod.abstractMethod(originalMethod.getReturnType(), originalMethod.getName(), params, originalMethod.getExceptionTypes(), newClass);
private void replaceGenericResponseMethods(CtClass clazz) throws NotFoundException, CannotCompileException, BadBytecode { for (CtMethod method : clazz.getMethods()) { if (method.getReturnType().subtypeOf(getGenericResponseClass())) { MethodInfo methodInfo = method.getMethodInfo(); CtMethod replacementMethod = CtNewMethod .abstractMethod( getResponseClass(), method.getName(), method.getParameterTypes(), method.getExceptionTypes(), clazz); for (Object attributeInfo : methodInfo.getAttributes()) { if (attributeInfo instanceof SignatureAttribute) { String sig = transformMethodSignature((SignatureAttribute) attributeInfo); replacementMethod.getMethodInfo().addAttribute( new SignatureAttribute(((SignatureAttribute) attributeInfo).getConstPool(), sig)); } else { replacementMethod.getMethodInfo().addAttribute((AttributeInfo) attributeInfo); } } clazz.removeMethod(method); clazz.addMethod(replacementMethod); } } }
CtMethod newMethod = CtNewMethod.abstractMethod(originalMethod.getReturnType(), originalMethod.getName(), params, originalMethod.getExceptionTypes(), newClass);