org.kuali.rice.core.api.mo
Interface ModelBuilder

All Known Implementing Classes:
ActionDefinition.Builder, ActionItem.Builder, ActionItemCustomization.Builder, ActionRequest.Builder, ActionSet.Builder, ActionTaken.Builder, AgendaDefinition.Builder, AgendaItemDefinition.Builder, AgendaTreeDefinition.Builder, AgendaTreeSubAgendaEntry.Builder, Assignee.Builder, BaseAttribute.Builder, Campus.Builder, CampusQueryResults.Builder, CampusType.Builder, CampusTypeQueryResults.Builder, CategoryDefinition.Builder, CodedAttribute.Builder, Component.Builder, ContextDefinition.Builder, Country.Builder, CountryQueryResults.Builder, County.Builder, CountyQueryResults.Builder, DelegateMember.Builder, DelegateMemberQueryResults.Builder, DelegateType.Builder, DisplayParameters.Builder, Document.Builder, DocumentActionParameters.Builder, DocumentAttribute.AbstractBuilder, DocumentAttributeDateTime.Builder, DocumentAttributeDecimal.Builder, DocumentAttributeInteger.Builder, DocumentAttributeString.Builder, DocumentContent.Builder, DocumentContentUpdate.Builder, DocumentDetail.Builder, DocumentLink.Builder, DocumentSearchCriteria.Builder, DocumentSearchCriteriaConfiguration.Builder, DocumentSearchResult.Builder, DocumentSearchResults.Builder, DocumentSearchResultSetConfiguration.Builder, DocumentSearchResultValue.Builder, DocumentSearchResultValues.Builder, DocumentStatusTransition.Builder, DocumentType.Builder, DocumentTypeAttribute.Builder, DocumentUpdate.Builder, Entity.Builder, EntityAddress.Builder, EntityAffiliation.Builder, EntityAffiliationType.Builder, EntityBioDemographics.Builder, EntityCitizenship.Builder, EntityDefault.Builder, EntityDefaultQueryResults.Builder, EntityEmail.Builder, EntityEmployment.Builder, EntityEthnicity.Builder, EntityExternalIdentifier.Builder, EntityExternalIdentifierType.Builder, EntityName.Builder, EntityNamePrincipalName.Builder, EntityNameQueryResults.Builder, EntityPhone.Builder, EntityPrivacyPreferences.Builder, EntityQueryResults.Builder, EntityResidency.Builder, EntityTypeContactInfo.Builder, EntityTypeContactInfoDefault.Builder, EntityVisa.Builder, ExtensionDefinition.Builder, FunctionDefinition.Builder, FunctionParameterDefinition.Builder, GenericQueryResults.Builder, Group.Builder, GroupMember.Builder, GroupMemberQueryResults.Builder, GroupQueryResults.Builder, KewAttributeDefinition.Builder, KewTypeAttribute.Builder, KewTypeDefinition.Builder, KimAttribute.Builder, KimAttributeData.Builder, KimAttributeField.Builder, KimType.Builder, KimTypeAttribute.Builder, KrmsAttributeDefinition.Builder, KrmsTypeAttribute.Builder, KrmsTypeDefinition.Builder, LookupCustomizer.Builder, Namespace.Builder, NaturalLanguageTemplate.Builder, NaturalLanguageTemplateAttribute.Builder, NaturalLanguageUsage.Builder, Note.Builder, Notification.Builder, NotificationChannel.Builder, NotificationChannelReviewer.Builder, NotificationContentType.Builder, NotificationListRecipient.Builder, NotificationPriority.Builder, NotificationProducer.Builder, NotificationRecipient.Builder, NotificationResponse.Builder, NotificationSender.Builder, Parameter.Builder, ParameterQueryResults.Builder, ParameterType.Builder, PeopleFlowDefinition.Builder, PeopleFlowDelegate.Builder, PeopleFlowMember.Builder, Permission.Builder, PermissionQueryResults.Builder, PostalCode.Builder, PostalCodeQueryResults.Builder, Preferences.Builder, Principal.Builder, PrincipalQueryResults.Builder, ProcessDefinition.Builder, PropositionDefinition.Builder, PropositionParameter.Builder, QueryByCriteria.Builder, ReferenceObjectBinding.Builder, ReferenceObjectBindingQueryResults.Builder, RemotableAbstractControl.Builder, RemotableAbstractWidget.Builder, RemotableAttributeError.Builder, RemotableAttributeField.Builder, RemotableAttributeLookupSettings.Builder, RemotableCheckbox.Builder, RemotableCheckboxGroup.Builder, RemotableDatepicker.Builder, RemotableHiddenInput.Builder, RemotablePasswordInput.Builder, RemotableQuickFinder.Builder, RemotableRadioButtonGroup.Builder, RemotableSelect.Builder, RemotableSelectGroup.Builder, RemotableTextarea.Builder, RemotableTextExpand.Builder, RemotableTextInput.Builder, Responsibility.Builder, ResponsibilityAction.Builder, ResponsibilityQueryResults.Builder, Role.Builder, RoleMember.Builder, RoleMemberQueryResults.Builder, RoleMembership.Builder, RoleMembershipQueryResults.Builder, RoleName.Builder, RolePermission.Builder, RoleQueryResults.Builder, RoleResponsibility.Builder, RoleResponsibilityAction.Builder, RouteNode.Builder, RouteNodeConfigurationParameter.Builder, RouteNodeInstance.Builder, RouteNodeInstanceState.Builder, RoutePath.Builder, RoutingReportActionToTake.Builder, RoutingReportCriteria.Builder, Rule.Builder, RuleDefinition.Builder, RuleDelegation.Builder, RuleExpression.Builder, RuleExtension.Builder, RuleQueryResults.Builder, RuleReportCriteria.Builder, RuleResponsibility.Builder, RuleTemplate.Builder, RuleTemplateAttribute.Builder, RuleTemplateOption.Builder, RuleTemplateQueryResults.Builder, RuleValidationContext.Builder, ServiceDescriptor.Builder, ServiceEndpoint.Builder, ServiceInfo.Builder, State.Builder, StateQueryResults.Builder, Style.Builder, Template.Builder, TemplateQueryResults.Builder, TermDefinition.Builder, TermParameterDefinition.Builder, TermResolverDefinition.Builder, TermSpecificationDefinition.Builder, TypeTypeRelation.Builder, UserChannelSubscription.Builder, ValidActions.Builder, ValidationResults.Builder, WorkflowAttributeDefinition.Builder

public interface ModelBuilder

This is an interface that defines a builder. A builder is an object used to assemble and construct an instance of another object. Typically the object being constructed will be an immutable object (and therefore does not contain "setters" which can be used to mutate it's state). The builder pattern is a creation pattern that can be used to aid in the construction of these complex immutable objects.

This interface only defines a common build() method which is used to return an instance of the object once state has been set on the builder to a point where construction of an object instance is deemed acceptable by the client code. Definition of type-specific setter methods are defined by the classes which implement this interface.

This version of the builder pattern is proposed by Joshua Bloch in his book "Effective Java". See "Effective Java" 2nd ed. page 15 for more information.

Author:
Kuali Rice Team (rice.collab@kuali.org)

Method Summary
 Object build()
          Returns an instance of the object being built by this builder based on the current state of the builder.
 

Method Detail

build

Object build()
Returns an instance of the object being built by this builder based on the current state of the builder. It should be possible to invoke this method more than once on the same builder. It should never return null;

Returns:
an instance of the object being built by this builder, should never return null


Copyright © 2005-2012 The Kuali Foundation. All Rights Reserved.