Home | History | Annotate | Download | only in extensions
      1 package gov.nist.javax.sip.parser.extensions;
      2 
      3 import gov.nist.core.Token;
      4 import gov.nist.javax.sip.header.Reason;
      5 import gov.nist.javax.sip.header.ReasonList;
      6 import gov.nist.javax.sip.header.SIPHeader;
      7 import gov.nist.javax.sip.header.extensions.References;
      8 import gov.nist.javax.sip.parser.Lexer;
      9 import gov.nist.javax.sip.parser.ParametersParser;
     10 import gov.nist.javax.sip.parser.TokenTypes;
     11 
     12 import java.text.ParseException;
     13 
     14 public class ReferencesParser extends ParametersParser {
     15     /**
     16      * Creates a new instance of ReferencesParser
     17      * @param references the header to parse
     18      */
     19     public ReferencesParser(String references) {
     20         super(references);
     21     }
     22 
     23     /**
     24      * Constructor
     25      * @param lexer the lexer to use to parse the header
     26      */
     27     protected ReferencesParser(Lexer lexer) {
     28         super(lexer);
     29     }
     30 
     31     /**
     32      * parse the String message
     33      * @return SIPHeader (ReasonParserList object)
     34      * @throws SIPParseException if the message does not respect the spec.
     35      */
     36     public SIPHeader parse() throws ParseException {
     37 
     38         if (debug)
     39             dbg_enter("ReasonParser.parse");
     40 
     41         try {
     42             headerName(TokenTypes.REFERENCES);
     43             References references= new References();
     44             this.lexer.SPorHT();
     45 
     46             String callId = lexer.byteStringNoSemicolon();
     47 
     48             references.setCallId(callId);
     49             super.parse(references);
     50             return references;
     51        } finally {
     52             if (debug)
     53                 dbg_leave("ReferencesParser.parse");
     54         }
     55 
     56 
     57     }
     58 
     59 }
     60