/** * Ensures that the governor implements the given type. * * @param javaType the type to implement (required) * @since 1.2.0 */ protected final void ensureGovernorImplements(final JavaType javaType) { if (!governorTypeDetails.implementsType(javaType)) { builder.addImplementsType(javaType); } }
/** * Ensures that the governor implements the given type. * * @param javaType the type to implement (required) * @since 1.2.0 */ protected final void ensureGovernorImplements(final JavaType javaType) { if (!governorTypeDetails.implementsType(javaType)) { builder.addImplementsType(javaType); } }
/** * Add annotation and method to avoid cycles converting to XML. * * @param id Declared by metadata id */ protected void addCycleDetection(String id) { // Implements class and create method to avoid XML cycles builder.addImplementsType(new JavaType( "com.sun.xml.bind.CycleRecoverable")); // Create method executed when cycle detected JavaSymbolName methodName = new JavaSymbolName("onCycleDetected"); JavaType returnType = new JavaType(Object.class.getName()); List<AnnotatedJavaType> paramTypes = new ArrayList<AnnotatedJavaType>(1); paramTypes.add(new AnnotatedJavaType(new JavaType( "com.sun.xml.bind.CycleRecoverable.Context"), new ArrayList<AnnotationMetadata>())); List<JavaSymbolName> paramNames = new ArrayList<JavaSymbolName>(1); paramNames.add(new JavaSymbolName("context")); InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine("return new " + governorTypeDetails.getName() + " ();"); builder.addMethod(new MethodMetadataBuilder(id, Modifier.PUBLIC, methodName, returnType, paramTypes, paramNames, bodyBuilder)); }
builder.addImplementsType(new JavaType(CallbackHandler.class .getCanonicalName()));