org.springframework.roo.classpath.details
Class AbstractMemberHoldingTypeDetailsBuilder<T extends MemberHoldingTypeDetails>

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<T>
Type Parameters:
T - the type of MemberHoldingTypeDetails being built
All Implemented Interfaces:
org.springframework.roo.model.Builder<T>
Direct Known Subclasses:
ClassOrInterfaceTypeDetailsBuilder, ItdTypeDetailsBuilder

public abstract class AbstractMemberHoldingTypeDetailsBuilder<T extends MemberHoldingTypeDetails>
extends AbstractIdentifiableAnnotatedJavaStructureBuilder<T>

Abstract Builder to assist building MemberHoldingTypeDetails implementations.

Since:
1.1
Author:
Ben Alex

Constructor Summary
protected AbstractMemberHoldingTypeDetailsBuilder(MemberHoldingTypeDetails existing)
          Constructor
protected AbstractMemberHoldingTypeDetailsBuilder(String declaredbyMetadataId)
          Constructor
protected AbstractMemberHoldingTypeDetailsBuilder(String declaredbyMetadataId, MemberHoldingTypeDetails existing)
          Constructor
 
Method Summary
 boolean addConstructor(ConstructorMetadata constructor)
           
 boolean addConstructor(ConstructorMetadataBuilder constructorBuilder)
           
 boolean addExtendsTypes(org.springframework.roo.model.JavaType extendsType)
           
 boolean addField(FieldMetadata field)
           
 boolean addField(FieldMetadataBuilder fieldBuilder)
           
 boolean addImplementsType(org.springframework.roo.model.JavaType implementsType)
           
abstract  void addImports(Collection<ImportMetadata> imports)
          Adds the given imports to this builder if not already present
 boolean addInitializer(InitializerMetadataBuilder initializer)
           
 boolean addInnerType(ClassOrInterfaceTypeDetails innerType)
           
 boolean addInnerType(ClassOrInterfaceTypeDetailsBuilder innerType)
           
 boolean addMethod(MethodMetadata method)
          Adds the given method to this builder
 boolean addMethod(MethodMetadataBuilder methodBuilder)
          Adds the given method to this builder
 List<ConstructorMetadata> buildConstructors()
           
 List<FieldMetadata> buildFields()
           
 List<InitializerMetadata> buildInitializers()
           
 List<ClassOrInterfaceTypeDetails> buildInnerTypes()
           
 List<MethodMetadata> buildMethods()
           
 void clearDeclaredMethods()
          Removes all declared methods from this builder
 List<ConstructorMetadataBuilder> getDeclaredConstructors()
           
 List<FieldMetadataBuilder> getDeclaredFields()
           
 List<InitializerMetadataBuilder> getDeclaredInitializers()
           
 List<ClassOrInterfaceTypeDetailsBuilder> getDeclaredInnerTypes()
           
 List<MethodMetadataBuilder> getDeclaredMethods()
          Returns the declared methods in this builder
 List<org.springframework.roo.model.JavaType> getExtendsTypes()
          Returns the types that the built instance will extend, if any.
 List<org.springframework.roo.model.JavaType> getImplementsTypes()
           
protected  void onAddConstructor(ConstructorMetadataBuilder constructorBuilder)
           
protected  void onAddExtendsTypes(org.springframework.roo.model.JavaType extendsType)
           
protected  void onAddField(FieldMetadataBuilder fieldBuilder)
           
protected  void onAddImplementType(org.springframework.roo.model.JavaType implementsType)
           
protected  void onAddInitializer(InitializerMetadataBuilder initializer)
           
protected  void onAddInnerType(ClassOrInterfaceTypeDetailsBuilder innerType)
           
protected  void onAddMethod(MethodMetadataBuilder methodBuilder)
          Subclasses can perform their own actions upon a method builder being added.
 boolean removeAll(Collection<? extends MethodMetadataBuilder> methodsToRemove)
          Removes the given methods from this builder
 void removeExtendsTypes(org.springframework.roo.model.JavaType... superTypes)
          Ensures that the type being built does not extend any of the given types
 void setDeclaredConstructors(Collection<? extends ConstructorMetadataBuilder> declaredConstructors)
          Sets the builders for the constructors that are to be declared
 void setDeclaredFields(Collection<? extends FieldMetadataBuilder> declaredFields)
          Sets the builders for the fields to be declared by the type being built
 void setDeclaredInitializers(Collection<? extends InitializerMetadataBuilder> declaredInitializers)
          Sets the builders for the initializers of the type being built
 void setDeclaredInnerTypes(Collection<? extends ClassOrInterfaceTypeDetailsBuilder> declaredInnerTypes)
          Sets the builders for the inner types of the type being built
 void setDeclaredMethods(Iterable<? extends MethodMetadataBuilder> declaredMethods)
          Sets the declared methods for this builder; equivalent to calling addMethod(MethodMetadataBuilder) once for each item of the given Iterable.
 void setExtendsTypes(Collection<? extends org.springframework.roo.model.JavaType> extendsTypes)
          Sets the types that the built instance will extend
 void setImplementsTypes(Collection<? extends org.springframework.roo.model.JavaType> implementsTypes)
          Sets the types to be implemented by the type being built
 
Methods inherited from class org.springframework.roo.classpath.details.AbstractIdentifiableAnnotatedJavaStructureBuilder
addAnnotation, addAnnotation, buildAnnotations, getAnnotations, getDeclaredTypeAnnotation, onAddAnnotation, 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
 
Methods inherited from interface org.springframework.roo.model.Builder
build
 

Constructor Detail

AbstractMemberHoldingTypeDetailsBuilder

protected AbstractMemberHoldingTypeDetailsBuilder(MemberHoldingTypeDetails existing)
Constructor

Parameters:
existing -

AbstractMemberHoldingTypeDetailsBuilder

protected AbstractMemberHoldingTypeDetailsBuilder(String declaredbyMetadataId)
Constructor

Parameters:
declaredbyMetadataId -

AbstractMemberHoldingTypeDetailsBuilder

protected AbstractMemberHoldingTypeDetailsBuilder(String declaredbyMetadataId,
                                                  MemberHoldingTypeDetails existing)
Constructor

Parameters:
declaredbyMetadataId -
existing -
Method Detail

addConstructor

public final boolean addConstructor(ConstructorMetadata constructor)

addConstructor

public final boolean addConstructor(ConstructorMetadataBuilder constructorBuilder)

addExtendsTypes

public final boolean addExtendsTypes(org.springframework.roo.model.JavaType extendsType)

addField

public final boolean addField(FieldMetadata field)

addField

public final boolean addField(FieldMetadataBuilder fieldBuilder)

addImplementsType

public final boolean addImplementsType(org.springframework.roo.model.JavaType implementsType)

addImports

public abstract void addImports(Collection<ImportMetadata> imports)
Adds the given imports to this builder if not already present

Parameters:
imports - the imports to add; can be null
Since:
1.2.0

addInitializer

public final boolean addInitializer(InitializerMetadataBuilder initializer)

addInnerType

public final boolean addInnerType(ClassOrInterfaceTypeDetails innerType)

addInnerType

public final boolean addInnerType(ClassOrInterfaceTypeDetailsBuilder innerType)

addMethod

public final boolean addMethod(MethodMetadata method)
Adds the given method to this builder

Parameters:
method - the method to add; can be null
Returns:
true if the state of this builder changed

addMethod

public final boolean addMethod(MethodMetadataBuilder methodBuilder)
Adds the given method to this builder

Parameters:
methodBuilder - the method builder to add; ignored if null or if its MID doesn't match this builder's MID
Returns:
true if the state of this builder changed

buildConstructors

public final List<ConstructorMetadata> buildConstructors()

buildFields

public final List<FieldMetadata> buildFields()

buildInitializers

public final List<InitializerMetadata> buildInitializers()

buildInnerTypes

public final List<ClassOrInterfaceTypeDetails> buildInnerTypes()

buildMethods

public final List<MethodMetadata> buildMethods()

clearDeclaredMethods

public void clearDeclaredMethods()
Removes all declared methods from this builder


getDeclaredConstructors

public final List<ConstructorMetadataBuilder> getDeclaredConstructors()

getDeclaredFields

public final List<FieldMetadataBuilder> getDeclaredFields()

getDeclaredInitializers

public List<InitializerMetadataBuilder> getDeclaredInitializers()

getDeclaredInnerTypes

public List<ClassOrInterfaceTypeDetailsBuilder> getDeclaredInnerTypes()

getDeclaredMethods

public final List<MethodMetadataBuilder> getDeclaredMethods()
Returns the declared methods in this builder

Returns:
an unmodifiable copy of this list

getExtendsTypes

public final List<org.springframework.roo.model.JavaType> getExtendsTypes()
Returns the types that the built instance will extend, if any. Does not return a copy, i.e. modifying the returned list will modify this builder! TODO improve encapsulation by returning a defensive copy and updating callers accordingly

Returns:
a non-null list

getImplementsTypes

public final List<org.springframework.roo.model.JavaType> getImplementsTypes()

onAddConstructor

protected void onAddConstructor(ConstructorMetadataBuilder constructorBuilder)

onAddExtendsTypes

protected void onAddExtendsTypes(org.springframework.roo.model.JavaType extendsType)

onAddField

protected void onAddField(FieldMetadataBuilder fieldBuilder)

onAddImplementType

protected void onAddImplementType(org.springframework.roo.model.JavaType implementsType)

onAddInitializer

protected void onAddInitializer(InitializerMetadataBuilder initializer)

onAddInnerType

protected void onAddInnerType(ClassOrInterfaceTypeDetailsBuilder innerType)

onAddMethod

protected void onAddMethod(MethodMetadataBuilder methodBuilder)
Subclasses can perform their own actions upon a method builder being added. This implementation does nothing.

Parameters:
methodBuilder - the method being added; never null

removeAll

public boolean removeAll(Collection<? extends MethodMetadataBuilder> methodsToRemove)
Removes the given methods from this builder

Parameters:
methodsToRemove - can be null for none
Returns:
true if this builder changed as a result
See Also:
List.removeAll(Collection)

removeExtendsTypes

public void removeExtendsTypes(org.springframework.roo.model.JavaType... superTypes)
Ensures that the type being built does not extend any of the given types

Parameters:
superTypes - the types to remove as supertypes

setDeclaredConstructors

public final void setDeclaredConstructors(Collection<? extends ConstructorMetadataBuilder> declaredConstructors)
Sets the builders for the constructors that are to be declared

Parameters:
declaredConstructors - can be null for none

setDeclaredFields

public final void setDeclaredFields(Collection<? extends FieldMetadataBuilder> declaredFields)
Sets the builders for the fields to be declared by the type being built

Parameters:
declaredFields - the builders to set (can be null for none)

setDeclaredInitializers

public void setDeclaredInitializers(Collection<? extends InitializerMetadataBuilder> declaredInitializers)
Sets the builders for the initializers of the type being built

Parameters:
declaredInitializers - the builders to set; can be null for none

setDeclaredInnerTypes

public void setDeclaredInnerTypes(Collection<? extends ClassOrInterfaceTypeDetailsBuilder> declaredInnerTypes)
Sets the builders for the inner types of the type being built

Parameters:
declaredInnerTypes - the builders to set; can be null for none

setDeclaredMethods

public final void setDeclaredMethods(Iterable<? extends MethodMetadataBuilder> declaredMethods)
Sets the declared methods for this builder; equivalent to calling addMethod(MethodMetadataBuilder) once for each item of the given Iterable.

Parameters:
declaredMethods - the methods to set; can be null for none, otherwise the Iterable is defensively copied

setExtendsTypes

public final void setExtendsTypes(Collection<? extends org.springframework.roo.model.JavaType> extendsTypes)
Sets the types that the built instance will extend

Parameters:
extendsTypes - can be null for none

setImplementsTypes

public final void setImplementsTypes(Collection<? extends org.springframework.roo.model.JavaType> implementsTypes)
Sets the types to be implemented by the type being built

Parameters:
implementsTypes - can be null for none


Copyright © 2009–2015. All rights reserved.