001 package org.jboss.dna.repository.sequencer; 002 003 import net.jcip.annotations.NotThreadSafe; 004 import org.jboss.dna.graph.ExecutionContext; 005 import org.jboss.dna.graph.Graph; 006 import org.jboss.dna.graph.io.Destination; 007 import org.jboss.dna.graph.io.GraphBatchDestination; 008 009 /** 010 * The sequencer context represents the complete context of a sequencer invocation, including the execution context 011 * (which contains JAAS credentials, namespace mappings, and value factories) and the I/O environment for writing 012 * output. 013 * 014 * <p> 015 * This class is not thread safe due to its use of {@link Destination a destination}. 016 * </p> 017 */ 018 @NotThreadSafe 019 public class SequencerContext { 020 021 private final ExecutionContext executionContext; 022 private final Graph graph; 023 private final Destination destination; 024 025 public SequencerContext( ExecutionContext executionContext, 026 Graph graph ) { 027 super(); 028 029 assert executionContext != null; 030 assert graph != null; 031 032 this.executionContext = executionContext; 033 this.graph = graph; 034 this.destination = new GraphBatchDestination(graph.batch()); 035 } 036 037 /** 038 * Returns the execution context under which this sequencer context operates 039 * @return the execution context under which this sequencer context operates 040 */ 041 public ExecutionContext getExecutionContext() { 042 return executionContext; 043 } 044 045 /** 046 * Returns the I/O environment in which this sequencer context operates 047 * @return the I/O environment in which this sequencer context operates 048 */ 049 public Destination getDestination() { 050 return destination; 051 } 052 053 Graph graph() { 054 return this.graph; 055 } 056 057 }