001package ca.uhn.hl7v2.validation.app; 002 003import java.util.ArrayList; 004import java.util.Arrays; 005import java.util.List; 006 007import ca.uhn.hl7v2.model.*; 008import ca.uhn.hl7v2.HL7Exception; 009 010/** 011 * A composite test application that delegates to multiple other test applications 012 * and returns a combined list of problems. 013 * @author Bryan Tripp 014 * @deprecated 015 */ 016public class MultiTestApplication extends TestApplication { 017 018 private List<TestApplication> tests; 019 020 /** Creates a new instance of MultiTestApplication */ 021 public MultiTestApplication() { 022 tests = new ArrayList<TestApplication>(20); 023 } 024 025 /** 026 * Returns true if ANY of the delegates can accept the message. 027 */ 028 public boolean canProcess(Message in) { 029 boolean can = false; 030 for (int i = 0; !can && i < tests.size(); i++) { 031 can = tests.get(i).canProcess(in); 032 } 033 return can; 034 } 035 036 /** Tests the message by passing it to all test apps that have been registered 037 * using addTest(). 038 * @return exceptions that describe any identified problems with the message 039 */ 040 public HL7Exception[] test(Message in) throws HL7Exception { 041 List<HL7Exception> problems = new ArrayList<HL7Exception>(40); 042 for (int i = 0; i < tests.size(); i++) { 043 TestApplication app = (TestApplication) tests.get(i); 044 HL7Exception[] shortList = app.test(in); 045 problems.addAll(Arrays.asList(shortList)); 046 } 047 return problems.toArray(new HL7Exception[0]); 048 } 049 050 /** 051 * Registers a test app so that messages will be tested against it. 052 */ 053 public void addTest(TestApplication test) { 054 tests.add(test); 055 } 056 057}