org.springframework.roo.classpath.details
Class ItdTypeDetailsBuilder

java.lang.Object
  extended by org.springframework.roo.model.AbstractCustomDataAccessorBuilder<T>
      extended by org.springframework.roo.classpath.details.AbstractIdentifiableJavaStructureBuilder<T>
          extended by org.springframework.roo.classpath.details.AbstractIdentifiableAnnotatedJavaStructureBuilder<T>
              extended by org.springframework.roo.classpath.details.AbstractMemberHoldingTypeDetailsBuilder<ItdTypeDetails>
                  extended by org.springframework.roo.classpath.details.ItdTypeDetailsBuilder
All Implemented Interfaces:
org.springframework.roo.model.Builder<ItdTypeDetails>

public class ItdTypeDetailsBuilder
extends AbstractMemberHoldingTypeDetailsBuilder<ItdTypeDetails>

Assists in the building of an ItdTypeDetails instance.

All methods on this class (which does NOT include the constructor) accept null arguments, and will automatically ignore any attempt to add an IdentifiableJavaStructure that is not use the same declaredByMetadataId as when the instance was constructed.

In addition, any method on this class which accepts an InvocableMemberMetadata will verify a InvocableMemberMetadata.getBody() is provided. This therefore detects programming errors which result from requesting a member to be included in an ITD but without providing the actual executable body for that member.

Since:
1.0
Author:
Ben Alex, Stefan Schmidt

Constructor Summary
ItdTypeDetailsBuilder(ItdTypeDetails existing)
          Constructor based on an existing ITD
ItdTypeDetailsBuilder(String declaredByMetadataId, ClassOrInterfaceTypeDetails governor, org.springframework.roo.model.JavaType aspect, boolean privilegedAspect)
          Constructor
 
Method Summary
 void addFieldAnnotation(DeclaredFieldAnnotationDetails declaredFieldAnnotationDetails)
           
 void addImports(Collection<ImportMetadata> imports)
          Adds the given imports to this builder if not already present
 void addMethodAnnotation(DeclaredMethodAnnotationDetails declaredMethodAnnotationDetails)
           
 void addTypeAnnotation(AnnotationMetadata annotationMetadata)
          Deprecated. 
 ItdTypeDetails build()
           
 org.springframework.roo.model.ImportRegistrationResolver getImportRegistrationResolver()
           
protected  void onAddAnnotation(AnnotationMetadataBuilder md)
           
protected  void onAddConstructor(ConstructorMetadataBuilder md)
           
protected  void onAddExtendsTypes(org.springframework.roo.model.JavaType type)
           
protected  void onAddField(FieldMetadataBuilder md)
           
protected  void onAddImplementType(org.springframework.roo.model.JavaType type)
           
 void onAddInnerType(ClassOrInterfaceTypeDetailsBuilder cid)
           
protected  void onAddMethod(MethodMetadataBuilder md)
          Subclasses can perform their own actions upon a method builder being added.
 void setDeclarePrecedence(org.springframework.roo.model.JavaType... aspects)
          Set the aspects to use on declare precedence AspectJ declaration.
 
Methods inherited from class org.springframework.roo.classpath.details.AbstractMemberHoldingTypeDetailsBuilder
addConstructor, addConstructor, addExtendsTypes, addField, addField, addImplementsType, addInitializer, addInnerType, addInnerType, addMethod, addMethod, buildConstructors, buildFields, buildInitializers, buildInnerTypes, buildMethods, clearDeclaredMethods, getDeclaredConstructors, getDeclaredFields, getDeclaredInitializers, getDeclaredInnerTypes, getDeclaredMethods, getExtendsTypes, getImplementsTypes, onAddInitializer, removeAll, removeExtendsTypes, setDeclaredConstructors, setDeclaredFields, setDeclaredInitializers, setDeclaredInnerTypes, setDeclaredMethods, setExtendsTypes, setImplementsTypes
 
Methods inherited from class org.springframework.roo.classpath.details.AbstractIdentifiableAnnotatedJavaStructureBuilder
addAnnotation, addAnnotation, buildAnnotations, getAnnotations, getDeclaredTypeAnnotation, removeAnnotation, setAnnotations, setAnnotations, updateTypeAnnotation, updateTypeAnnotation, updateTypeAnnotation
 
Methods inherited from class org.springframework.roo.classpath.details.AbstractIdentifiableJavaStructureBuilder
getDeclaredByMetadataId, getModifier, setModifier
 
Methods inherited from class org.springframework.roo.model.AbstractCustomDataAccessorBuilder
append, getCustomData, putCustomData, setCustomData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ItdTypeDetailsBuilder

public ItdTypeDetailsBuilder(ItdTypeDetails existing)
Constructor based on an existing ITD

Parameters:
existing - (required)

ItdTypeDetailsBuilder

public ItdTypeDetailsBuilder(String declaredByMetadataId,
                             ClassOrInterfaceTypeDetails governor,
                             org.springframework.roo.model.JavaType aspect,
                             boolean privilegedAspect)
Constructor

Parameters:
declaredByMetadataId -
governor - (required)
aspect - (required)
privilegedAspect -
Method Detail

addFieldAnnotation

public void addFieldAnnotation(DeclaredFieldAnnotationDetails declaredFieldAnnotationDetails)

addImports

public void addImports(Collection<ImportMetadata> imports)
Description copied from class: AbstractMemberHoldingTypeDetailsBuilder
Adds the given imports to this builder if not already present

Specified by:
addImports in class AbstractMemberHoldingTypeDetailsBuilder<ItdTypeDetails>
Parameters:
imports - the imports to add; can be null

addMethodAnnotation

public void addMethodAnnotation(DeclaredMethodAnnotationDetails declaredMethodAnnotationDetails)

addTypeAnnotation

@Deprecated
public void addTypeAnnotation(AnnotationMetadata annotationMetadata)
Deprecated. 


setDeclarePrecedence

public void setDeclarePrecedence(org.springframework.roo.model.JavaType... aspects)
Set the aspects to use on declare precedence AspectJ declaration.

Parameters:
aspects -

build

public ItdTypeDetails build()

getImportRegistrationResolver

public org.springframework.roo.model.ImportRegistrationResolver getImportRegistrationResolver()

onAddAnnotation

protected void onAddAnnotation(AnnotationMetadataBuilder md)
Overrides:
onAddAnnotation in class AbstractIdentifiableAnnotatedJavaStructureBuilder<ItdTypeDetails>

onAddConstructor

protected void onAddConstructor(ConstructorMetadataBuilder md)
Overrides:
onAddConstructor in class AbstractMemberHoldingTypeDetailsBuilder<ItdTypeDetails>

onAddExtendsTypes

protected void onAddExtendsTypes(org.springframework.roo.model.JavaType type)
Overrides:
onAddExtendsTypes in class AbstractMemberHoldingTypeDetailsBuilder<ItdTypeDetails>

onAddField

protected void onAddField(FieldMetadataBuilder md)
Overrides:
onAddField in class AbstractMemberHoldingTypeDetailsBuilder<ItdTypeDetails>

onAddImplementType

protected void onAddImplementType(org.springframework.roo.model.JavaType type)
Overrides:
onAddImplementType in class AbstractMemberHoldingTypeDetailsBuilder<ItdTypeDetails>

onAddInnerType

public void onAddInnerType(ClassOrInterfaceTypeDetailsBuilder cid)
Overrides:
onAddInnerType in class AbstractMemberHoldingTypeDetailsBuilder<ItdTypeDetails>

onAddMethod

protected void onAddMethod(MethodMetadataBuilder md)
Description copied from class: AbstractMemberHoldingTypeDetailsBuilder
Subclasses can perform their own actions upon a method builder being added. This implementation does nothing.

Overrides:
onAddMethod in class AbstractMemberHoldingTypeDetailsBuilder<ItdTypeDetails>
Parameters:
md - the method being added; never null


Copyright © 2009–2015. All rights reserved.