/** * Checks if required method is declared to be exclude from generation * * @param methodMetadata * @return true if method should be ignored * @since 2.0.0RC3 */ protected boolean hasToExcludeMethod(final MethodMetadataBuilder methodMetadata) { return excludeMethods.contains(methodMetadata.getMethodName().getSymbolName()); }
/** * To check if current method was implemented on all Java classes or ITds * associated to this entity class. * If method was implemented, is not necessary to add again. * * @param methodBuilder * @return */ private boolean checkIfInterfaceMethodWasImplemented(MethodMetadataBuilder methodBuilder) { // ROO-3584: Obtain current declared methods List<MethodMetadataBuilder> declaredMethods = builder.getDeclaredMethods(); for (MethodMetadataBuilder method : declaredMethods) { // If current method equals to interface method, return false if (method.getMethodName().equals(methodBuilder.getMethodName())) { return true; } } // ROO-3587: Obtain ALL declared methods from Java classes and ITDs. MemberDetails memberDetails = memberDetailsScanner.getMemberDetails(getClass().getName(), governorTypeDetails); List<MethodMetadata> allMethods = memberDetails.getMethods(); for (MethodMetadata method : allMethods) { // If current method equals to interface method, return false if (method.getMethodName().equals(methodBuilder.getMethodName())) { return true; } } return false; }
@Override protected void onAddMethod(final MethodMetadataBuilder md) { Validate.isTrue( MemberFindingUtils.getDeclaredMethod(governor, md.getMethodName(), AnnotatedJavaType.convertFromAnnotatedJavaTypes(md.getParameterTypes())) == null, "Method '%s' already defined in target type '%s' (ITD target '%s')", md.getMethodName(), governor.getName().getFullyQualifiedTypeName(), aspect.getFullyQualifiedTypeName()); Validate.isTrue( MemberFindingUtils.getDeclaredMethod(build(), md.getMethodName(), AnnotatedJavaType.convertFromAnnotatedJavaTypes(md.getParameterTypes())) == null, "Method '%s' already defined in ITD (ITD target '%s')", md.getMethodName(), aspect.getFullyQualifiedTypeName()); if (!Modifier.isAbstract(md.getModifier()) && md.getReturnType() != JavaType.VOID_PRIMITIVE) { Validate.notBlank(md.getBody(), "Method '%s' failed to provide a body, despite being identified for ITD inclusion", md); } } }
/** * Ensures that the governor has provided method * * @param MethodMetadataBuilder the method to include(required) * @since 2.0 */ protected final void ensureGovernorHasMethod(final MethodMetadataBuilder methodMetadata) { if (!hasToExcludeMethod(methodMetadata) && governorTypeDetails.getMethod(methodMetadata.getMethodName(), AnnotatedJavaType.convertFromAnnotatedJavaTypes(methodMetadata.getParameterTypes())) == null && methodMetadata.getDeclaredByMetadataId().equals(getId()) && MemberFindingUtils.getDeclaredMethod(builder.build(), methodMetadata.getMethodName(), AnnotatedJavaType.convertFromAnnotatedJavaTypes(methodMetadata.getParameterTypes())) == null) { builder.addMethod(methodMetadata); } }
public void addDataToMethod(final MethodMetadata replacement, final CustomData customData) { // If the MIDs don't match then the proposed can't be a replacement if (!replacement.getDeclaredByMetadataId().equals(getDeclaredByMetadataId())) { return; } for (final MethodMetadataBuilder existingMethod : getDeclaredMethods()) { if (existingMethod.getMethodName().equals(replacement.getMethodName())) { if (AnnotatedJavaType.convertFromAnnotatedJavaTypes(existingMethod.getParameterTypes()) .equals( AnnotatedJavaType.convertFromAnnotatedJavaTypes(replacement.getParameterTypes()))) { for (final Object key : customData.keySet()) { existingMethod.putCustomData(key, customData.get(key)); } break; } } } }
new AnnotationMetadataBuilder(JavaType.REQUEST_WRAPPER); requestWrapperAnnotation.addStringAttribute("className", String.format("%s.%sRequest", sei .getType().getPackage(), seiMethod.getMethodName().getSymbolNameCapitalisedFirstLetter())); requestWrapperAnnotation .addStringAttribute("localName", String.format("%sRequest", seiMethod.getMethodName() .getSymbolNameCapitalisedFirstLetter())); requestWrapperAnnotation.addStringAttribute( new AnnotationMetadataBuilder(JavaType.RESPONSE_WRAPPER); responseWrapperAnnotation.addStringAttribute("className", String.format("%s.%sResponse", sei .getType().getPackage(), seiMethod.getMethodName().getSymbolNameCapitalisedFirstLetter())); responseWrapperAnnotation.addStringAttribute("localName", String.format("%sResponse", seiMethod .getMethodName().getSymbolNameCapitalisedFirstLetter())); responseWrapperAnnotation.addStringAttribute( "targetNamespace", new AnnotationMetadataBuilder(JavaType.WEB_METHOD); webMethodAnnotation.addStringAttribute("action", String.format("urn:%s", seiMethod.getMethodName().getSymbolNameCapitalisedFirstLetter())); seiMethod.addAnnotation(webMethodAnnotation);
public MethodMetadata build() { DefaultMethodMetadata methodMetadata = new DefaultMethodMetadata(getCustomData().build(), getDeclaredByMetadataId(), getModifier(), buildAnnotations(), getMethodName(), getReturnType(), getParameterTypes(), getParameterNames(), getThrowsTypes(), getBodyBuilder() .getOutput()); methodMetadata.setCommentStructure(this.getCommentStructure()); // ROO-3648: Add support to generate Generic Methods methodMetadata.setGenericDefinition(this.getGenericDefinition()); return methodMetadata; }
/** * Checks if required method is declared to be exclude from generation * * @param methodMetadata * @return true if method should be ignored * @since 2.0.0RC3 */ protected boolean hasToExcludeMethod(final MethodMetadataBuilder methodMetadata) { return excludeMethods.contains(methodMetadata.getMethodName().getSymbolName()); }
if (targetMethod.getMethodName().equals(method.getMethodName()) && targetMethod.getParameterTypes().equals(method.getParameterTypes())) { continue methodAdditions;
/** * To check if current method was implemented on all Java classes or ITds * associated to this entity class. * If method was implemented, is not necessary to add again. * * @param methodBuilder * @return */ private boolean checkIfInterfaceMethodWasImplemented(MethodMetadataBuilder methodBuilder) { // ROO-3584: Obtain current declared methods List<MethodMetadataBuilder> declaredMethods = builder.getDeclaredMethods(); for (MethodMetadataBuilder method : declaredMethods) { // If current method equals to interface method, return false if (method.getMethodName().equals(methodBuilder.getMethodName())) { return true; } } // ROO-3587: Obtain ALL declared methods from Java classes and ITDs. MemberDetails memberDetails = memberDetailsScanner.getMemberDetails(getClass().getName(), governorTypeDetails); List<MethodMetadata> allMethods = memberDetails.getMethods(); for (MethodMetadata method : allMethods) { // If current method equals to interface method, return false if (method.getMethodName().equals(methodBuilder.getMethodName())) { return true; } } return false; }
@Override protected void onAddMethod(final MethodMetadataBuilder md) { Validate.isTrue( MemberFindingUtils.getDeclaredMethod(governor, md.getMethodName(), AnnotatedJavaType.convertFromAnnotatedJavaTypes(md.getParameterTypes())) == null, "Method '%s' already defined in target type '%s' (ITD target '%s')", md.getMethodName(), governor.getName().getFullyQualifiedTypeName(), aspect.getFullyQualifiedTypeName()); Validate.isTrue( MemberFindingUtils.getDeclaredMethod(build(), md.getMethodName(), AnnotatedJavaType.convertFromAnnotatedJavaTypes(md.getParameterTypes())) == null, "Method '%s' already defined in ITD (ITD target '%s')", md.getMethodName(), aspect.getFullyQualifiedTypeName()); if (!Modifier.isAbstract(md.getModifier()) && md.getReturnType() != JavaType.VOID_PRIMITIVE) { Validate.notBlank(md.getBody(), "Method '%s' failed to provide a body, despite being identified for ITD inclusion", md); } } }
continue; if (!methodBuilder.getMethodName().equals(method.getMethodName())) { continue;
/** * Ensures that the governor has provided method * * @param MethodMetadataBuilder the method to include(required) * @since 2.0 */ protected final void ensureGovernorHasMethod(final MethodMetadataBuilder methodMetadata) { if (!hasToExcludeMethod(methodMetadata) && governorTypeDetails.getMethod(methodMetadata.getMethodName(), AnnotatedJavaType.convertFromAnnotatedJavaTypes(methodMetadata.getParameterTypes())) == null && methodMetadata.getDeclaredByMetadataId().equals(getId()) && MemberFindingUtils.getDeclaredMethod(builder.build(), methodMetadata.getMethodName(), AnnotatedJavaType.convertFromAnnotatedJavaTypes(methodMetadata.getParameterTypes())) == null) { builder.addMethod(methodMetadata); } }
public void addDataToMethod(final MethodMetadata replacement, final CustomData customData) { // If the MIDs don't match then the proposed can't be a replacement if (!replacement.getDeclaredByMetadataId().equals(getDeclaredByMetadataId())) { return; } for (final MethodMetadataBuilder existingMethod : getDeclaredMethods()) { if (existingMethod.getMethodName().equals(replacement.getMethodName())) { if (AnnotatedJavaType.convertFromAnnotatedJavaTypes(existingMethod.getParameterTypes()) .equals( AnnotatedJavaType.convertFromAnnotatedJavaTypes(replacement.getParameterTypes()))) { for (final Object key : customData.keySet()) { existingMethod.putCustomData(key, customData.get(key)); } break; } } } }
public MethodMetadata build() { DefaultMethodMetadata methodMetadata = new DefaultMethodMetadata(getCustomData().build(), getDeclaredByMetadataId(), getModifier(), buildAnnotations(), getMethodName(), getReturnType(), getParameterTypes(), getParameterNames(), getThrowsTypes(), getBodyBuilder() .getOutput()); methodMetadata.setCommentStructure(this.getCommentStructure()); // ROO-3648: Add support to generate Generic Methods methodMetadata.setGenericDefinition(this.getGenericDefinition()); return methodMetadata; }
if (targetMethod.getMethodName().equals(method.getMethodName()) && targetMethod.getParameterTypes().equals(method.getParameterTypes())) { continue methodAdditions;