Class ArgParser


  • public class ArgParser
    extends java.lang.Object
    A utility class for handling mixed positional and keyword arguments. Typical usage:
       public MatchObject search(PyObject[] args, String[] kws) {
           ArgParser ap = new ArgParser("search", args, kws,
                                        "pattern", "pos", "endpos");
           String string = ap.getString(0);
           int start     = ap.getInt(1, 0);
           int end       = ap.getInt(2, string.length());
           ...
     
    • Constructor Summary

      Constructors 
      Constructor Description
      ArgParser​(java.lang.String funcname, PyObject[] args, java.lang.String[] kws, java.lang.String p0)
      Create an ArgParser for a one-argument function.
      ArgParser​(java.lang.String funcname, PyObject[] args, java.lang.String[] kws, java.lang.String[] paramnames)
      Create an ArgParser for a multi-argument function.
      ArgParser​(java.lang.String funcname, PyObject[] args, java.lang.String[] kws, java.lang.String[] paramnames, int minargs)  
      ArgParser​(java.lang.String funcname, PyObject[] args, java.lang.String[] kws, java.lang.String[] paramnames, int minargs, boolean takesZeroArgs)  
      ArgParser​(java.lang.String funcname, PyObject[] args, java.lang.String[] kws, java.lang.String p0, java.lang.String p1)
      Create an ArgParser for a two-argument function.
      ArgParser​(java.lang.String funcname, PyObject[] args, java.lang.String[] kws, java.lang.String p0, java.lang.String p1, java.lang.String p2)
      Create an ArgParser for a three-argument function.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int getIndex​(int pos)
      Return an required argument as an index.
      int getIndex​(int pos, int def)
      Return an optional argument as an index.
      int getInt​(int pos)
      Return a required argument as an int.
      int getInt​(int pos, int def)
      Return an optional argument as an int.
      PyObject getList​(int pos)
      Return the remaining arguments as a tuple.
      PyObject getPyObject​(int pos)
      Return a required argument as a PyObject.
      PyObject getPyObject​(int pos, PyObject def)
      Return an optional argument as a PyObject.
      PyObject getPyObjectByType​(int pos, PyType type)
      Return a required argument as a PyObject, ensuring the object is of the specified type.
      PyObject getPyObjectByType​(int pos, PyType type, PyObject def)
      Return an optional argument as a PyObject, or return the default value provided, which may be null.
      java.lang.String getString​(int pos)
      Return a required argument as a String.
      java.lang.String getString​(int pos, java.lang.String def)
      Return an optional argument as a String.
      void noKeywords()
      Ensure no keyword arguments were passed, raising a TypeError if so.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ArgParser

        public ArgParser​(java.lang.String funcname,
                         PyObject[] args,
                         java.lang.String[] kws,
                         java.lang.String p0)
        Create an ArgParser for a one-argument function.
        Parameters:
        funcname - Name of the function. Used in error messages.
        args - The actual call arguments supplied in the call.
        kws - The actual keyword names supplied in the call.
        p0 - The expected argument in the function definition.
      • ArgParser

        public ArgParser​(java.lang.String funcname,
                         PyObject[] args,
                         java.lang.String[] kws,
                         java.lang.String p0,
                         java.lang.String p1)
        Create an ArgParser for a two-argument function.
        Parameters:
        funcname - Name of the function. Used in error messages.
        args - The actual call arguments supplied in the call.
        kws - The actual keyword names supplied in the call.
        p0 - The first expected argument in the function definition.
        p1 - The second expected argument in the function definition.
      • ArgParser

        public ArgParser​(java.lang.String funcname,
                         PyObject[] args,
                         java.lang.String[] kws,
                         java.lang.String p0,
                         java.lang.String p1,
                         java.lang.String p2)
        Create an ArgParser for a three-argument function.
        Parameters:
        funcname - Name of the function. Used in error messages.
        args - The actual call arguments supplied in the call.
        kws - The actual keyword names supplied in the call.
        p0 - The first expected argument in the function definition.
        p1 - The second expected argument in the function definition.
        p2 - The third expected argument in the function definition.
      • ArgParser

        public ArgParser​(java.lang.String funcname,
                         PyObject[] args,
                         java.lang.String[] kws,
                         java.lang.String[] paramnames)
        Create an ArgParser for a multi-argument function.
        Parameters:
        funcname - Name of the function. Used in error messages.
        args - The actual call arguments supplied in the call.
        kws - The actual keyword names supplied in the call.
        paramnames - The list of expected argument in the function definition.
      • ArgParser

        public ArgParser​(java.lang.String funcname,
                         PyObject[] args,
                         java.lang.String[] kws,
                         java.lang.String[] paramnames,
                         int minargs)
      • ArgParser

        public ArgParser​(java.lang.String funcname,
                         PyObject[] args,
                         java.lang.String[] kws,
                         java.lang.String[] paramnames,
                         int minargs,
                         boolean takesZeroArgs)
    • Method Detail

      • getString

        public java.lang.String getString​(int pos)
        Return a required argument as a String.
        Parameters:
        pos - The position of the .. First argument is numbered 0.
      • getString

        public java.lang.String getString​(int pos,
                                          java.lang.String def)
        Return an optional argument as a String.
        Parameters:
        pos - The position of the argument. First argument is numbered 0.
      • getInt

        public int getInt​(int pos)
        Return a required argument as an int.
        Parameters:
        pos - The position of the argument. First argument is numbered 0.
      • getInt

        public int getInt​(int pos,
                          int def)
        Return an optional argument as an int.
        Parameters:
        pos - The position of the argument. First argument is numbered 0.
      • getIndex

        public int getIndex​(int pos)
        Return an required argument as an index.
        Parameters:
        pos - The position of the argument. First argument is numbered 0.
      • getIndex

        public int getIndex​(int pos,
                            int def)
        Return an optional argument as an index.
        Parameters:
        pos - The position of the argument. First argument is numbered 0.
      • getPyObject

        public PyObject getPyObject​(int pos)
        Return a required argument as a PyObject.
        Parameters:
        pos - The position of the argument. First argument is numbered 0.
      • getPyObject

        public PyObject getPyObject​(int pos,
                                    PyObject def)
        Return an optional argument as a PyObject.
        Parameters:
        pos - The position of the argument. First argument is numbered 0.
      • getPyObjectByType

        public PyObject getPyObjectByType​(int pos,
                                          PyType type)
        Return a required argument as a PyObject, ensuring the object is of the specified type.
        Parameters:
        pos - the position of the argument. First argument is numbered 0
        type - the desired PyType of the argument
        Returns:
        the PyObject of PyType type
      • getPyObjectByType

        public PyObject getPyObjectByType​(int pos,
                                          PyType type,
                                          PyObject def)
        Return an optional argument as a PyObject, or return the default value provided, which may be null. If the returned value is not null, it must be of the specified type.
        Parameters:
        pos - the position of the argument. First argument is numbered 0
        type - the desired PyType of the argument
        def - to return if the argument at pos was not given (null allowed)
        Returns:
        the PyObject of PyType type
      • getList

        public PyObject getList​(int pos)
        Return the remaining arguments as a tuple.
        Parameters:
        pos - The position of the argument. First argument is numbered 0.
      • noKeywords

        public void noKeywords()
        Ensure no keyword arguments were passed, raising a TypeError if so.