View Javadoc
1   package ca.uhn.hl7v2.testpanel.util;
2   
3   import java.util.Comparator;
4   
5   import org.apache.commons.lang.StringUtils;
6   
7   import ca.uhn.hl7v2.HL7Exception;
8   import ca.uhn.hl7v2.model.Message;
9   import ca.uhn.hl7v2.parser.PipeParser;
10  import ca.uhn.hl7v2.util.Terser;
11  
12  public class Hl7V2MessageStringComparatorByControlId implements Comparator<String> {
13  	private static final PipeParser ourParser = PipeParser.getInstanceWithNoValidation();
14  
15  	public int compare(String theS1, String theS2) {
16  
17  		if (theS1 == null && theS2 == null) {
18  			return 0;
19  		}
20  		if (theS1 == null) {
21  			return 1;
22  		}
23  		if (theS2 == null) {
24  			return -1;
25  		}
26  
27  		Message o1;
28  		Message o2;
29  		try {
30  			o1 = ourParser.parse(theS1);
31  			o2 = ourParser.parse(theS2);
32  		} catch (HL7Exception e) {
33  			throw new Error(e);
34  		}
35  
36  		try {
37  			String c1 = new Terser(o1).get("/MSH-10");
38  			String c2 = new Terser(o2).get("/MSH-10");
39  
40  			c1 = StringUtils.defaultString(c1);
41  			c2 = StringUtils.defaultString(c2);
42  
43  			return c1.compareToIgnoreCase(c2);
44  
45  		} catch (HL7Exception e) {
46  			throw new Error(e);
47  		}
48  
49  	}
50  
51  }