1 18 19 package sync4j.framework.engine.pipeline; 20 21 import java.io.Serializable ; 22 import java.util.logging.Logger ; 23 import java.util.logging.Level ; 24 25 import sync4j.framework.logging.Sync4jLogger; 26 27 import sync4j.framework.core.SyncML; 28 import sync4j.framework.core.Sync4jException; 29 30 import sync4j.framework.engine.pipeline.StopProcessingException; 31 32 42 public class PipelineManager 43 implements InputMessageProcessor, OutputMessageProcessor, Serializable { 44 45 47 49 private static final Logger log = Sync4jLogger.getLogger("engine"); 50 51 53 55 private InputMessageProcessor inputProcessors[] = null; 56 private OutputMessageProcessor outputProcessors[] = null; 57 58 61 public InputMessageProcessor[] getInputProcessors() { 62 return this.inputProcessors; 63 } 64 65 68 public void setInputProcessors(InputMessageProcessor[] inputProcessors) { 69 this.inputProcessors = inputProcessors; 70 } 71 72 75 public OutputMessageProcessor[] getOutputProcessors() { 76 return this.outputProcessors; 77 } 78 79 82 public void setOutputProcessors(OutputMessageProcessor[] outputProcessors) { 83 this.outputProcessors = outputProcessors; 84 } 85 86 88 94 public void preProcessMessage(MessageProcessingContext processingContext, SyncML message) { 95 if (log.isLoggable(Level.FINEST)) { 96 log.finest("Starting preprocessing"); 97 } 98 99 int size = inputProcessors.length; 100 for (int i=0; i<size; i++) { 101 try { 102 inputProcessors[i].preProcessMessage(processingContext, message); 103 } catch (StopProcessingException e) { 104 if (log.isLoggable(Level.INFO)) { 105 log.info( "Input processing stopped by " 106 + inputProcessors[i] 107 + " (reason: " 108 + e.getMessage() 109 + ")" 110 ); 111 } 112 break; 113 } catch(Sync4jException e) { 114 log.info("preProcessMessage error: " + e); 115 } 116 } 117 } 118 119 125 public void postProcessMessage(MessageProcessingContext processingContext, SyncML message) { 126 if (log.isLoggable(Level.FINEST)) { 127 log.finest("Starting postprocessing"); 128 } 129 130 int size = outputProcessors.length; 131 for (int i=0; i<size; i++) { 132 try { 133 outputProcessors[i].postProcessMessage(processingContext, message); 134 } catch (StopProcessingException e) { 135 if (log.isLoggable(Level.INFO)) { 136 log.info( "Output processing stopped by " 137 + outputProcessors[i] 138 + " (reason: " 139 + e.getMessage() 140 + ")" 141 ); 142 } 143 break; 144 } catch(Sync4jException e) { 145 log.info("postProcessMessage error: " + e); 146 } 147 } 148 } 149 150 } 151 | Popular Tags |