content: package gov2.nist.javax2.sip.parser.extensions;
  
  import gov2.nist.javax2.sip.header.*;
  import gov2.nist.javax2.sip.header.extensions.*;
  import gov2.nist.javax2.sip.parser.*;
  
  import java.text.ParseException;
  
  import javax2.sip.*;
  
  /**
   * Parser for SIP Session Expires Header.
   *
   *
   */
  public class SessionExpiresParser extends ParametersParser {
  
      /**
       * protected constructor.
       * @param text is the text of the header to parse
       */
      public SessionExpiresParser(String text) {
          super(text);
      }
  
      /**
       * constructor.
       * @param lexer is the lexer passed in from the enclosing parser.
       */
      protected SessionExpiresParser(Lexer lexer) {
          super(lexer);
      }
  
      /**
       * Parse the header.
       */
      public SIPHeader parse() throws ParseException {
          SessionExpires se = new SessionExpires();
          if (debug)
              dbg_enter("parse");
          try {
              headerName(TokenTypes.SESSIONEXPIRES_TO);
  
              String nextId = lexer.getNextId();
  
              try {
                  int delta = Integer.parseInt(nextId);
                  se.setExpires(delta);
              } catch (NumberFormatException ex) {
                  throw createParseException("bad integer format");
              } catch (InvalidArgumentException ex) {
                  throw createParseException(ex.getMessage());
              }
              // May have parameters...
              this.lexer.SPorHT();
              super.parse(se);
              return se;
  
          } finally {
              if (debug)
                  dbg_leave("parse");
          }
  
      }
  
      public static void main(String args[]) throws ParseException {
          String to[] =
              {   "Session-Expires: 30\n",
                  "Session-Expires: 45;refresher=uac\n",
              };
  
          for (int i = 0; i < to.length; i++) {
              SessionExpiresParser tp = new SessionExpiresParser(to[i]);
              SessionExpires t = (SessionExpires) tp.parse();
              System.out.println("encoded = " + t.encode());
              System.out.println("\ntime=" + t.getExpires() );
              if ( t.getParameter("refresher") != null)
                  System.out.println("refresher=" + t.getParameter("refresher") );
  
          }
      }
  
  
  }
  
  