edu.sc.seis.sod.process.waveform

## Class ForkProcess

- java.lang.Object
- - edu.sc.seis.sod.process.waveform.ForkProcess

- All Implemented Interfaces:
    WaveformProcess, SodElement, Subsetter, Threadable
  Direct Known Subclasses:
    InvertFlippedChannels, SeismogramAND, SeismogramNOT, SeismogramOR

      public class ForkProcess
      extends java.lang.Object
      implements WaveformProcess, Threadable

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.List` | `localSeisProcessList`
    `static java.util.List<java.lang.String>` | `packages`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ForkProcess(org.w3c.dom.Element config)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `WaveformResult` | `accept(edu.sc.seis.fissuresUtil.cache.CacheEvent event, edu.iris.Fissures.network.ChannelImpl channel, edu.iris.Fissures.IfSeismogramDC.RequestFilter[] request, edu.iris.Fissures.IfSeismogramDC.RequestFilter[] available, edu.iris.Fissures.seismogramDC.LocalSeismogramImpl[] seismograms, CookieJar cookieJar)` Forks the processing off the LocalSeismograms.
    `static edu.iris.Fissures.seismogramDC.LocalSeismogramImpl[]` | `copySeismograms(edu.iris.Fissures.seismogramDC.LocalSeismogramImpl[] seismograms)`
    `static WaveformProcess` | `createSubsetter(Subsetter s)`
    `protected WaveformResult` | `doAND(edu.sc.seis.fissuresUtil.cache.CacheEvent event, edu.iris.Fissures.network.ChannelImpl channel, edu.iris.Fissures.IfSeismogramDC.RequestFilter[] request, edu.iris.Fissures.IfSeismogramDC.RequestFilter[] available, edu.iris.Fissures.seismogramDC.LocalSeismogramImpl[] seismograms, CookieJar cookieJar)`
    `WaveformProcess[]` | `getWrappedProcessors()`
    `boolean` | `isThreadSafe()`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### packages

          public static final java.util.List<java.lang.String> packages

    - #### localSeisProcessList

          protected java.util.List localSeisProcessList

  - ### Constructor Detail

    - #### ForkProcess

          public ForkProcess(org.w3c.dom.Element config)
                      throws ConfigurationException

      Throws:
        `ConfigurationException`

  - ### Method Detail

    - #### isThreadSafe

          public boolean isThreadSafe()

      Specified by:
        `isThreadSafe` in interface `Threadable`

    - #### createSubsetter

          public static WaveformProcess createSubsetter(Subsetter s)
                                                 throws ConfigurationException

      Throws:
        `ConfigurationException`

    - #### accept

          public WaveformResult accept(edu.sc.seis.fissuresUtil.cache.CacheEvent event,
                                       edu.iris.Fissures.network.ChannelImpl channel,
                                       edu.iris.Fissures.IfSeismogramDC.RequestFilter[] request,
                                       edu.iris.Fissures.IfSeismogramDC.RequestFilter[] available,
                                       edu.iris.Fissures.seismogramDC.LocalSeismogramImpl[] seismograms,
                                       CookieJar cookieJar)
                                throws java.lang.Exception

      Forks the processing off the LocalSeismograms. The processes that are contained in this tag are processed, but the return value off the process method is the original seismograms. This allows, for example to process both a original and a filtered version of the seismograms independently.
      Specified by:
        `accept` in interface `WaveformProcess`
      Throws:
        `java.lang.Exception`

    - #### doAND

          protected WaveformResult doAND(edu.sc.seis.fissuresUtil.cache.CacheEvent event,
                                         edu.iris.Fissures.network.ChannelImpl channel,
                                         edu.iris.Fissures.IfSeismogramDC.RequestFilter[] request,
                                         edu.iris.Fissures.IfSeismogramDC.RequestFilter[] available,
                                         edu.iris.Fissures.seismogramDC.LocalSeismogramImpl[] seismograms,
                                         CookieJar cookieJar)
                                  throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### copySeismograms

          public static edu.iris.Fissures.seismogramDC.LocalSeismogramImpl[] copySeismograms(edu.iris.Fissures.seismogramDC.LocalSeismogramImpl[] seismograms)

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### getWrappedProcessors

          public WaveformProcess[] getWrappedProcessors()