org.apache.camel.model
Class InterceptDefinition

java.lang.Object
  extended by org.apache.camel.model.OptionalIdentifiedDefinition
      extended by org.apache.camel.model.ProcessorDefinition<Type>
          extended by org.apache.camel.model.OutputDefinition<InterceptDefinition>
              extended by org.apache.camel.model.InterceptDefinition
All Implemented Interfaces:
Block
Direct Known Subclasses:
InterceptFromDefinition

public class InterceptDefinition
extends OutputDefinition<InterceptDefinition>

Represents an XML <intercept/> element

Version:
$Revision: 20139 $

Field Summary
protected  List<Processor> intercepted
           
protected  Processor output
           
 
Fields inherited from class org.apache.camel.model.OutputDefinition
outputs
 
Fields inherited from class org.apache.camel.model.ProcessorDefinition
errorHandlerBuilder, errorHandlerRef, inheritErrorHandler, log
 
Constructor Summary
InterceptDefinition()
           
 
Method Summary
 void afterPropertiesSet()
          This method is only for handling some post configuration that is needed from the Spring DSL side as JAXB does not invoke the fluent builders, so we need to manually handle this afterwards, and since this is an interceptor it has to do a bit of magic logic to fixup to handle predicates with or without proceed/stop set as well.
 Processor createProcessor(RouteContext routeContext)
          Override this in definition class and implement logic to create the processor based on the definition model.
 Processor getInterceptedProcessor(int index)
           
 String getLabel()
          Returns a label to describe this node such as the expression if some kind of expression node
 String getShortName()
          Returns a short name for this node which can be useful for ID generation or referring to related resources like images
 boolean isAbstract()
          Whether this model is abstract or not.
 String toString()
           
 ChoiceDefinition when(Predicate predicate)
          Applies this interceptor only if the given predicate is true
 
Methods inherited from class org.apache.camel.model.OutputDefinition
getOutputs, setOutputs
 
Methods inherited from class org.apache.camel.model.ProcessorDefinition
addInterceptStrategies, addInterceptStrategy, addOutput, addRoutes, aggregate, aggregate, aggregate, aggregate, aop, bean, bean, bean, bean, beanRef, beanRef, choice, clearOutput, configureChild, convertBodyTo, convertBodyTo, createChannel, createChildProcessor, createCompositeProcessor, createErrorHandlerBuilder, createOutputsProcessor, createOutputsProcessor, delay, delay, delay, doTry, end, enrich, enrich, enrichRef, filter, filter, filter, filter, getErrorHandlerBuilder, getInterceptStrategies, getNodeFactory, getParent, id, idempotentConsumer, idempotentConsumer, idempotentConsumer, inheritErrorHandler, inOnly, inOnly, inOnly, inOnly, inOnly, inOnly, inOut, inOut, inOut, inOut, inOut, inOut, isInheritErrorHandler, loadBalance, loadBalance, log, log, log, loop, loop, loop, makeProcessor, markRollbackOnly, markRollbackOnlyLast, marshal, marshal, marshal, marshal, multicast, multicast, multicast, onCompletion, onException, pipeline, pipeline, pipeline, pipeline, policy, policy, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrichRef, process, processRef, recipientList, recipientList, recipientList, removeFaultHeader, removeHeader, removeHeaders, removeProperty, resequence, resequence, resequence, resequence, rollback, rollback, routeId, routingSlip, routingSlip, routingSlip, routingSlip, routingSlip, routingSlip, routingSlip, sample, sample, setBody, setBody, setErrorHandlerBuilder, setExchangePattern, setFaultBody, setFaultHeader, setHeader, setHeader, setInheritErrorHandler, setNodeFactory, setOutHeader, setOutHeader, setParent, setProperty, setProperty, sort, sort, sortBody, sortBody, split, split, split, stop, threads, threads, threads, throttle, throwException, to, to, to, to, to, to, to, to, to, to, toF, transacted, transacted, transform, transform, unmarshal, unmarshal, unmarshal, unmarshal, validate, validate, validate, wireTap, wireTap, wireTap, wireTap, wireTap, wireTap, wireTap, wrapChannel, wrapInErrorHandler, wrapProcessor
 
Methods inherited from class org.apache.camel.model.OptionalIdentifiedDefinition
description, getDescription, getId, hasCustomIdAssigned, idOrCreate, setDescription, setId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

output

protected Processor output

intercepted

protected final List<Processor> intercepted
Constructor Detail

InterceptDefinition

public InterceptDefinition()
Method Detail

toString

public String toString()
Overrides:
toString in class Object

getShortName

public String getShortName()
Description copied from class: OptionalIdentifiedDefinition
Returns a short name for this node which can be useful for ID generation or referring to related resources like images

Overrides:
getShortName in class OptionalIdentifiedDefinition
Returns:
defaults to "node" but derived nodes should overload this to provide a unique name

getLabel

public String getLabel()
Description copied from class: ProcessorDefinition
Returns a label to describe this node such as the expression if some kind of expression node

Overrides:
getLabel in class ProcessorDefinition<InterceptDefinition>

isAbstract

public boolean isAbstract()
Description copied from class: ProcessorDefinition
Whether this model is abstract or not.

An abstract model is something that is used for configuring cross cutting concerns such as error handling, transaction policies, interceptors etc.

Regular definitions is what is part of the route, such as ToDefinition, WireTapDefinition and the likes.

Will by default return false to indicate regular definition, so all the abstract definitions must override this method and return true instead.

This information is used in camel-spring to let Camel work a bit on the model provided by JAXB from the Spring XML file. This is needed to handle those cross cutting concerns properly. The Java DSL does not have this issue as it can work this out directly using the fluent builder methods.

Overrides:
isAbstract in class ProcessorDefinition<InterceptDefinition>
Returns:
true for abstract, otherwise false for regular.

createProcessor

public Processor createProcessor(RouteContext routeContext)
                          throws Exception
Description copied from class: ProcessorDefinition
Override this in definition class and implement logic to create the processor based on the definition model.

Overrides:
createProcessor in class ProcessorDefinition<InterceptDefinition>
Throws:
Exception

when

public ChoiceDefinition when(Predicate predicate)
Applies this interceptor only if the given predicate is true

Parameters:
predicate - the predicate
Returns:
the builder

afterPropertiesSet

public void afterPropertiesSet()
This method is only for handling some post configuration that is needed from the Spring DSL side as JAXB does not invoke the fluent builders, so we need to manually handle this afterwards, and since this is an interceptor it has to do a bit of magic logic to fixup to handle predicates with or without proceed/stop set as well.


getInterceptedProcessor

public Processor getInterceptedProcessor(int index)


Copyright © 2007-2010 IONA Open Source Community. All Rights Reserved.