View Javadoc
1 /* ==================================================================== 2 * License: 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in 13 * the documentation and/or other materials provided with the 14 * distribution. 15 * 16 * 3. The end-user documentation included with the redistribution, 17 * if any, must include the following acknowledgment: 18 * "This product includes software developed by 19 * Robert Half International (http://www.rhi.com/)." 20 * Alternately, this acknowledgment may appear in the software itself, 21 * if and wherever such third-party acknowledgments normally appear. 22 * 23 * 4. The names "Parc", "RHI", and "Robert Half International" must 24 * not be used to endorse or promote products derived from this 25 * software without prior written permission. For written 26 * permission, please contact pete.mckinstry@rhi.com. 27 * 28 * 5. Products derived from this software may not be called "PARC", 29 * nor may "PARC" appear in their name, without prior written 30 * permission of Robert Half International. 31 * 32 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 33 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 34 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 35 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 36 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 37 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 38 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 39 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 40 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 41 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 42 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 43 * SUCH DAMAGE. 44 * ==================================================================== 45 * 46 */ 47 package com.rhi.architecture.parc; 48 49 import com.rhi.architecture.resource.InitializationException; 50 51 import java.util.Properties; 52 53 /*** 54 * The OutputAdapter is responsible for taking a completed 55 * work set and storing it. 56 * 57 * @author Pete McKinstry 58 * @copyright 2002, Robert Half Int'l., Inc. All rights reserved. 59 * 60 * @since 1.0 61 */ 62 public interface OutputAdapter extends Adapter, Runnable { 63 64 /*** 65 * key in configuration that can be used to set the thread mode for the 66 * output adapter. 67 */ 68 public static final String RUN_AS_THREAD_KEY = 69 "OutputAdapter.RunAsThread"; 70 /*** 71 * RUN_AS_THREAD = 'Y' means multi-threaded. 72 */ 73 public static final String RUN_AS_THREAD = "Y"; 74 /*** 75 * DEFAULT_THREAD_MODE is multi-threaded 76 */ 77 public static final String DEFAULT_THREAD_MODE = RUN_AS_THREAD; 78 79 /*** 80 * Initialization. This method can acquire resources that will 81 * be needed for record processing, and/or configure settings. 82 * 83 * @param props 84 * 85 * @throws InitializationException - an error occured while 86 * configuring the output adapter. This will cause the 87 * application to shutdown. 88 * 89 * @since 1.0 90 */ 91 public void init(Properties props) throws InitializationException; 92 93 /*** 94 * Processing method for the output adapter. Opens the possibility 95 * of processing completed records asynchronously while the pipeline 96 * is running. It can also be run directly by the exec strategy from 97 * within the main thread. Both modes are supported and reasonable. 98 * 99 * @see java.lang.Runnable#run() 100 */ 101 public void run(); 102 103 /*** 104 * Mark output adapter complete 105 */ 106 public void markComplete(); 107 108 /*** 109 * Close is called outside of the strategy to allow the output 110 * adapter to commit any work that should only be done once per 111 * interface run. NOT once per batch cycle like flush(). 112 * 113 * @throws ProcessingException Signals a fatal error. The 114 * application will shutdown if this exception is thrown. 115 * 116 * @since 1.1 117 */ 118 public void close() throws ProcessingException; 119 120 /*** 121 * Perform any cleanup. Called by the PARCApplication during 122 * application shutdown. This should do any final cleanup and 123 * closing of resources. Note: It is not called during repeated 124 * batch cycles, so it's only useful for true shutdown logic. 125 * If you need something to happen during each pipeline 126 * execution, use <code>flush()</code>. Since the application 127 * is shutting down when cleanup is called, there are no 128 * checked exceptions thrown from this method. Cleanup failures 129 * should be able to be ignored. 130 * 131 * @since 1.0 132 */ 133 public void cleanup(); 134 135 /*** 136 * Set valid record channel 137 * 138 * @param ch 139 */ 140 public void setValidChannel(Channel ch); 141 142 /*** 143 * Set error record channel 144 * 145 * @param ch 146 */ 147 public void setErrorChannel(Channel ch); 148 149 /*** 150 * Set the handler used for reporting fatal errors during 151 * Filter processing. Since each Filter is run w/in a 152 * thread, the call stack is not an appropriate mechanism 153 * for reporting critical processing errors. Therefore, a 154 * Handler object is provided for the Filter to use for 155 * logging unrecoverable processing errors. 156 * Note: This handler must assume that any error is fatal. 157 * Non-fatal errors should be handled by adding errors to 158 * the record(s) being processed. 159 * 160 * @param h - the exception handler that should be used. 161 * 162 * @since 1.0 163 */ 164 public void setExceptionHandler(ExceptionHandler h); 165 166 }

This page was automatically generated by Maven