001package ca.uhn.hl7v2.model;
002
003/**
004 * An unspecified segment that has an undefined number of fields, each 
005 * of which is a Varies.  The primary intended use is to store data from 
006 * Z segments.  More precisely, any unknown segment that is encountered during
007 * parsing will be handled with this class.  This includes segments that do 
008 * not start with Z but nevertheless do not appear in the stated version 
009 * of HL7.  Also, this class is not used to handle Z segments that have been 
010 * explicitly defined and declared (see Parser.packageList() ).  
011 * @author Bryan Tripp
012 */
013@SuppressWarnings("serial")
014public class GenericSegment extends AbstractSegment {
015    
016    private String name;
017    
018    /** Creates a new instance of GenericSegment */
019    public GenericSegment(Group parent, String name) {
020        super(parent, null);
021        this.name = name;
022    }
023    
024    /**
025     * Returns the name specified at construction time. 
026     * @see Structure#getName() 
027     */
028    public String getName() {
029        return this.name;
030    }
031
032
033    /**
034     * {@inheritDoc}
035     */
036        protected Type createNewTypeWithoutReflection(int field) {
037                return new Varies(getMessage());
038        }
039    
040}