Class OutputProcessorChainImpl
- java.lang.Object
-
- org.apache.xml.security.stax.impl.OutputProcessorChainImpl
-
- All Implemented Interfaces:
OutputProcessorChain
,ProcessorChain
public class OutputProcessorChainImpl extends java.lang.Object implements OutputProcessorChain
Implementation of a OutputProcessorChain
-
-
Field Summary
Fields Modifier and Type Field Description private int
curPos
private DocumentContextImpl
documentContext
protected static org.slf4j.Logger
LOG
private OutboundSecurityContext
outboundSecurityContext
private java.util.List<OutputProcessor>
outputProcessors
private XMLSecStartElement
parentXmlSecStartElement
private int
startPos
-
Constructor Summary
Constructors Modifier Constructor Description OutputProcessorChainImpl(OutboundSecurityContext outboundSecurityContext)
OutputProcessorChainImpl(OutboundSecurityContext outboundSecurityContext, int startPos)
OutputProcessorChainImpl(OutboundSecurityContext outboundSecurityContext, DocumentContextImpl documentContext)
protected
OutputProcessorChainImpl(OutboundSecurityContext outboundSecurityContext, DocumentContextImpl documentContextImpl, int startPos, java.util.List<OutputProcessor> outputProcessors)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addProcessor(OutputProcessor newOutputProcessor)
Adds an OutputProcessor to the chain.OutputProcessorChain
createSubChain(OutputProcessor outputProcessor)
Create a new SubChain.OutputProcessorChain
createSubChain(OutputProcessor outputProcessor, XMLSecStartElement parentXMLSecStartElement)
void
doFinal()
Will finally be called when the whole document is processed Important note: Every processor in the chain has to call doFinal() in its own doFinal() method.DocumentContext
getDocumentContext()
The actual processed document's document contextjava.util.List<OutputProcessor>
getProcessors()
Returns a list with the active processors.OutboundSecurityContext
getSecurityContext()
The actual processed document's security contextvoid
processEvent(XMLSecEvent xmlSecEvent)
Forwards the XMLEvent to the next processor in the chain.void
removeProcessor(OutputProcessor outputProcessor)
Removes the specified OutputProcessor from this chain.void
reset()
resets the chain so that the next event will go again to the first processor in the chain.private void
setParentXmlSecStartElement(XMLSecStartElement xmlSecStartElement)
-
-
-
Field Detail
-
LOG
protected static final transient org.slf4j.Logger LOG
-
outputProcessors
private java.util.List<OutputProcessor> outputProcessors
-
startPos
private int startPos
-
curPos
private int curPos
-
parentXmlSecStartElement
private XMLSecStartElement parentXmlSecStartElement
-
outboundSecurityContext
private final OutboundSecurityContext outboundSecurityContext
-
documentContext
private final DocumentContextImpl documentContext
-
-
Constructor Detail
-
OutputProcessorChainImpl
public OutputProcessorChainImpl(OutboundSecurityContext outboundSecurityContext)
-
OutputProcessorChainImpl
public OutputProcessorChainImpl(OutboundSecurityContext outboundSecurityContext, int startPos)
-
OutputProcessorChainImpl
public OutputProcessorChainImpl(OutboundSecurityContext outboundSecurityContext, DocumentContextImpl documentContext)
-
OutputProcessorChainImpl
protected OutputProcessorChainImpl(OutboundSecurityContext outboundSecurityContext, DocumentContextImpl documentContextImpl, int startPos, java.util.List<OutputProcessor> outputProcessors)
-
-
Method Detail
-
reset
public void reset()
Description copied from interface:ProcessorChain
resets the chain so that the next event will go again to the first processor in the chain.- Specified by:
reset
in interfaceProcessorChain
-
getSecurityContext
public OutboundSecurityContext getSecurityContext()
Description copied from interface:OutputProcessorChain
The actual processed document's security context- Specified by:
getSecurityContext
in interfaceOutputProcessorChain
- Returns:
- The InboundSecurityContext
-
getDocumentContext
public DocumentContext getDocumentContext()
Description copied from interface:OutputProcessorChain
The actual processed document's document context- Specified by:
getDocumentContext
in interfaceOutputProcessorChain
- Returns:
- The DocumentContext
-
addProcessor
public void addProcessor(OutputProcessor newOutputProcessor)
Description copied from interface:OutputProcessorChain
Adds an OutputProcessor to the chain. The place where it will be applied can be controlled through the Phase, getBeforeProcessors and getAfterProcessors. @see Interface OutputProcessor- Specified by:
addProcessor
in interfaceOutputProcessorChain
- Parameters:
newOutputProcessor
- The OutputProcessor which should be placed in the chain
-
removeProcessor
public void removeProcessor(OutputProcessor outputProcessor)
Description copied from interface:OutputProcessorChain
Removes the specified OutputProcessor from this chain.- Specified by:
removeProcessor
in interfaceOutputProcessorChain
- Parameters:
outputProcessor
- to remove
-
getProcessors
public java.util.List<OutputProcessor> getProcessors()
Description copied from interface:OutputProcessorChain
Returns a list with the active processors.- Specified by:
getProcessors
in interfaceOutputProcessorChain
- Returns:
- a list with the active processors
-
setParentXmlSecStartElement
private void setParentXmlSecStartElement(XMLSecStartElement xmlSecStartElement)
-
processEvent
public void processEvent(XMLSecEvent xmlSecEvent) throws javax.xml.stream.XMLStreamException, XMLSecurityException
Description copied from interface:OutputProcessorChain
Forwards the XMLEvent to the next processor in the chain.- Specified by:
processEvent
in interfaceOutputProcessorChain
- Parameters:
xmlSecEvent
- The XMLEvent which should be forwarded to the next processor- Throws:
javax.xml.stream.XMLStreamException
- thrown when a streaming error occursXMLSecurityException
- thrown when a Security failure occurs
-
doFinal
public void doFinal() throws javax.xml.stream.XMLStreamException, XMLSecurityException
Description copied from interface:ProcessorChain
Will finally be called when the whole document is processed Important note: Every processor in the chain has to call doFinal() in its own doFinal() method. InputProcessors should call it before doing other stuff to keep the processing order. Remember the input-chain is in principle processed in the reverse order since we "leech" the events through the chain. So that means that we should do the same for the doFinal method, otherwise we may run into troubles.- Specified by:
doFinal
in interfaceProcessorChain
- Throws:
javax.xml.stream.XMLStreamException
- thrown when a streaming error occursXMLSecurityException
- thrown when a Security failure occurs
-
createSubChain
public OutputProcessorChain createSubChain(OutputProcessor outputProcessor) throws javax.xml.stream.XMLStreamException, XMLSecurityException
Description copied from interface:OutputProcessorChain
Create a new SubChain. The XMLEvents will be only be processed from the given OutputProcessor to the end. All earlier OutputProcessors don't get these events. In other words the chain will be splitted in two parts.- Specified by:
createSubChain
in interfaceOutputProcessorChain
- Parameters:
outputProcessor
- The OutputProcessor position the XMLEvents should be processed over this SubChain.- Returns:
- A new OutputProcessorChain
- Throws:
javax.xml.stream.XMLStreamException
- thrown when a streaming error occursXMLSecurityException
- thrown when a Security failure occurs
-
createSubChain
public OutputProcessorChain createSubChain(OutputProcessor outputProcessor, XMLSecStartElement parentXMLSecStartElement) throws javax.xml.stream.XMLStreamException, XMLSecurityException
- Specified by:
createSubChain
in interfaceOutputProcessorChain
- Throws:
javax.xml.stream.XMLStreamException
XMLSecurityException
-
-