001/* 002 The contents of this file are subject to the Mozilla Public License Version 1.1 003 (the "License"); you may not use this file except in compliance with the License. 004 You may obtain a copy of the License at http://www.mozilla.org/MPL/ 005 Software distributed under the License is distributed on an "AS IS" basis, 006 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the 007 specific language governing rights and limitations under the License. 008 009 The Original Code is "DelegatingMessageVisitor.java ". Description: 010 "Delegating visitor base class" 011 012 The Initial Developer of the Original Code is University Health Network. Copyright (C) 013 2013. All Rights Reserved. 014 015 Contributor(s): ______________________________________. 016 017 Alternatively, the contents of this file may be used under the terms of the 018 GNU General Public License (the "GPL"), in which case the provisions of the GPL are 019 applicable instead of those above. If you wish to allow use of your version of this 020 file only under the terms of the GPL and not to allow others to use your version 021 of this file under the MPL, indicate your decision by deleting the provisions above 022 and replace them with the notice and other provisions required by the GPL License. 023 If you do not delete the provisions above, a recipient may use your version of 024 this file under either the MPL or the GPL. 025 */ 026 027package ca.uhn.hl7v2.model; 028 029import ca.uhn.hl7v2.HL7Exception; 030import ca.uhn.hl7v2.Location; 031 032import org.slf4j.Logger; 033import org.slf4j.LoggerFactory; 034 035/** 036 * Delegates all visit method calls to the wrapped MessageVisitor. This class can be used 037 */ 038public class DelegatingMessageVisitor<T extends MessageVisitor> implements MessageVisitor { 039 040 private T delegate; 041 protected static final Logger LOG = LoggerFactory.getLogger(DelegatingMessageVisitor.class); 042 043 /** 044 * @param delegate MessageVisitor to which all calls are delegated to 045 */ 046 public DelegatingMessageVisitor(T delegate) { 047 this.delegate = delegate; 048 } 049 050 /** 051 * @return MessageVisitor to which all calls are delegated to 052 */ 053 public T getDelegate() { 054 return delegate; 055 } 056 057 public boolean start(Message message) throws HL7Exception { 058 return delegate.start(message); 059 } 060 061 public boolean end(Message message) throws HL7Exception { 062 return delegate.end(message); 063 } 064 065 public boolean start(Group group, Location location) throws HL7Exception { 066 return delegate.start(group, location); 067 } 068 069 public boolean end(Group group, Location location) throws HL7Exception { 070 return delegate.end(group, location); 071 } 072 073 public boolean start(Segment segment, Location location) throws HL7Exception { 074 return delegate.start(segment, location); 075 } 076 077 public boolean end(Segment segment, Location location) throws HL7Exception { 078 return delegate.end(segment, location); 079 } 080 081 public boolean start(Field field, Location location) throws HL7Exception { 082 return delegate.start(field, location); 083 } 084 085 public boolean end(Field Field, Location location) throws HL7Exception { 086 return delegate.end(Field, location); 087 } 088 089 public boolean start(Composite type, Location location) throws HL7Exception { 090 return delegate.start(type, location); 091 } 092 093 public boolean end(Composite type, Location location) throws HL7Exception { 094 return delegate.end(type, location); 095 } 096 097 public boolean visit(Primitive type, Location location) throws HL7Exception { 098 return delegate.visit(type, location); 099 } 100 101}