Home | History | Annotate | Download | only in extensions
      1 package gov.nist.javax.sip.parser.extensions;
      2 
      3 import gov.nist.javax.sip.header.*;
      4 import gov.nist.javax.sip.header.extensions.*;
      5 import gov.nist.javax.sip.parser.*;
      6 
      7 import java.text.ParseException;
      8 import javax.sip.*;
      9 
     10 /**
     11  * Parser for SIP MinSE Parser.
     12  *
     13  *    Min-SE  =  "Min-SE" HCOLON delta-seconds *(SEMI generic-param)
     14  *
     15  * @author P. Musgrave <pmusgrave (at) newheights.com>
     16  *
     17  * <a href="{@docRoot}/uncopyright.html">This code is in the public domain.</a>
     18  */
     19 public class MinSEParser extends ParametersParser {
     20 
     21     /**
     22      * protected constructor.
     23      * @param text is the text of the header to parse
     24      */
     25     public MinSEParser(String text) {
     26         super(text);
     27     }
     28 
     29     /**
     30      * constructor.
     31      * @param lexer is the lexer passed in from the enclosing parser.
     32      */
     33     protected MinSEParser(Lexer lexer) {
     34         super(lexer);
     35     }
     36 
     37     /**
     38      * Parse the header.
     39      */
     40     public SIPHeader parse() throws ParseException {
     41         MinSE minse = new MinSE();
     42         if (debug)
     43             dbg_enter("parse");
     44         try {
     45             headerName(TokenTypes.MINSE_TO);
     46 
     47             String nextId = lexer.getNextId();
     48             try {
     49                 int delta = Integer.parseInt(nextId);
     50                 minse.setExpires(delta);
     51             } catch (NumberFormatException ex) {
     52                 throw createParseException("bad integer format");
     53             } catch (InvalidArgumentException ex) {
     54                 throw createParseException(ex.getMessage());
     55             }
     56             this.lexer.SPorHT();
     57             super.parse(minse);
     58             return minse;
     59 
     60         } finally {
     61             if (debug)
     62                 dbg_leave("parse");
     63         }
     64 
     65     }
     66 
     67     public static void main(String args[]) throws ParseException {
     68         String to[] =
     69             {   "Min-SE: 30\n",
     70                 "Min-SE: 45;some-param=somevalue\n",
     71             };
     72 
     73         for (int i = 0; i < to.length; i++) {
     74             MinSEParser tp = new MinSEParser(to[i]);
     75             MinSE t = (MinSE) tp.parse();
     76             System.out.println("encoded = " + t.encode());
     77             System.out.println("\ntime=" + t.getExpires() );
     78             if ( t.getParameter("some-param") != null)
     79                 System.out.println("some-param=" + t.getParameter("some-param") );
     80 
     81         }
     82     }
     83 
     84 
     85 
     86 
     87 }
     88