1600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpackage gov.nist.javax.sip.parser.extensions; 2600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 3600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.core.Token; 4600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.Reason; 5600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.ReasonList; 6600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.SIPHeader; 7600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.header.extensions.References; 8600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.parser.Lexer; 9600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.parser.ParametersParser; 10600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport gov.nist.javax.sip.parser.TokenTypes; 11600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 12600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangimport java.text.ParseException; 13600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 14600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wangpublic class ReferencesParser extends ParametersParser { 15600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 16600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Creates a new instance of ReferencesParser 17600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param references the header to parse 18600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 19600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public ReferencesParser(String references) { 20600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang super(references); 21600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 22600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 23600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 24600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * Constructor 25600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @param lexer the lexer to use to parse the header 26600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 27600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang protected ReferencesParser(Lexer lexer) { 28600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang super(lexer); 29600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 30600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 31600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang /** 32600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * parse the String message 33600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @return SIPHeader (ReasonParserList object) 34600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang * @throws SIPParseException if the message does not respect the spec. 35600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang */ 36600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang public SIPHeader parse() throws ParseException { 37600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 38600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (debug) 39600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang dbg_enter("ReasonParser.parse"); 40600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 41600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang try { 42600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang headerName(TokenTypes.REFERENCES); 43600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang References references= new References(); 44600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang this.lexer.SPorHT(); 45600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 46600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang String callId = lexer.byteStringNoSemicolon(); 47600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 48600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang references.setCallId(callId); 49600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang super.parse(references); 50600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang return references; 51600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } finally { 52600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang if (debug) 53600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang dbg_leave("ReferencesParser.parse"); 54600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 55600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 56600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 57600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang } 58600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang 59600c7a4bbc7348167293eac928192e695b4ad5baChung-yih Wang} 60