Class PGInterval

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable

    public class PGInterval
    extends PGobject
    implements java.io.Serializable, java.lang.Cloneable
    This implements a class that handles the PostgreSQL interval type
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      PGInterval()
      required by the driver
      PGInterval​(int years, int months, int days, int hours, int minutes, double seconds)
      Initializes all values of this interval to the specified values
      PGInterval​(java.lang.String value)
      Initialize a interval with a given interval string representation
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(java.util.Calendar cal)
      Rolls this interval on a given calendar
      void add​(java.util.Date date)
      Rolls this interval on a given date
      void add​(PGInterval interval)
      Add this interval's value to the passed interval.
      boolean equals​(java.lang.Object obj)
      Returns whether an object is equal to this one or not
      int getDays()
      Returns the days represented by this interval
      int getHours()
      Returns the hours represented by this interval
      int getMinutes()
      Returns the minutes represented by this interval
      int getMonths()
      Returns the months represented by this interval
      double getSeconds()
      Returns the seconds represented by this interval
      java.lang.String getValue()
      Returns the stored interval information as a string
      int getYears()
      Returns the years represented by this interval
      int hashCode()
      Returns a hashCode for this object
      void scale​(int factor)
      Scale this interval by an integer factor.
      void setDays​(int days)
      Set the days of this interval to the specified value
      void setHours​(int hours)
      Set the hours of this interval to the specified value
      void setMinutes​(int minutes)
      Set the minutes of this interval to the specified value
      void setMonths​(int months)
      Set the months of this interval to the specified value
      void setSeconds​(double seconds)
      Set the seconds of this interval to the specified value
      void setValue​(int years, int months, int days, int hours, int minutes, double seconds)
      Set all values of this interval to the specified values
      void setValue​(java.lang.String value)
      Sets a interval string represented value to this instance.
      void setYears​(int years)
      Set the years of this interval to the specified value
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • PGInterval

        public PGInterval()
        required by the driver
      • PGInterval

        public PGInterval​(java.lang.String value)
                   throws java.sql.SQLException
        Initialize a interval with a given interval string representation
        Parameters:
        value - String representated interval (e.g. '3 years 2 mons')
        Throws:
        java.sql.SQLException - Is thrown if the string representation has an unknown format
        See Also:
        setValue(String)
      • PGInterval

        public PGInterval​(int years,
                          int months,
                          int days,
                          int hours,
                          int minutes,
                          double seconds)
        Initializes all values of this interval to the specified values
        See Also:
        setValue(int, int, int, int, int, double)
    • Method Detail

      • setValue

        public void setValue​(java.lang.String value)
                      throws java.sql.SQLException
        Sets a interval string represented value to this instance. This method only recognize the format, that Postgres returns - not all input formats are supported (e.g. '1 yr 2 m 3 s')!
        Overrides:
        setValue in class PGobject
        Parameters:
        value - String representated interval (e.g. '3 years 2 mons')
        Throws:
        java.sql.SQLException - Is thrown if the string representation has an unknown format
      • setValue

        public void setValue​(int years,
                             int months,
                             int days,
                             int hours,
                             int minutes,
                             double seconds)
        Set all values of this interval to the specified values
      • getValue

        public java.lang.String getValue()
        Returns the stored interval information as a string
        Overrides:
        getValue in class PGobject
        Returns:
        String represented interval
      • getYears

        public int getYears()
        Returns the years represented by this interval
      • setYears

        public void setYears​(int years)
        Set the years of this interval to the specified value
      • getMonths

        public int getMonths()
        Returns the months represented by this interval
      • setMonths

        public void setMonths​(int months)
        Set the months of this interval to the specified value
      • getDays

        public int getDays()
        Returns the days represented by this interval
      • setDays

        public void setDays​(int days)
        Set the days of this interval to the specified value
      • getHours

        public int getHours()
        Returns the hours represented by this interval
      • setHours

        public void setHours​(int hours)
        Set the hours of this interval to the specified value
      • getMinutes

        public int getMinutes()
        Returns the minutes represented by this interval
      • setMinutes

        public void setMinutes​(int minutes)
        Set the minutes of this interval to the specified value
      • getSeconds

        public double getSeconds()
        Returns the seconds represented by this interval
      • setSeconds

        public void setSeconds​(double seconds)
        Set the seconds of this interval to the specified value
      • add

        public void add​(java.util.Calendar cal)
        Rolls this interval on a given calendar
        Parameters:
        cal - Calendar instance to add to
      • add

        public void add​(java.util.Date date)
        Rolls this interval on a given date
        Parameters:
        date - Date instance to add to
      • add

        public void add​(PGInterval interval)
        Add this interval's value to the passed interval. This is backwards to what I would expect, but this makes it match the other existing add methods.
      • scale

        public void scale​(int factor)
        Scale this interval by an integer factor. The server can scale by arbitrary factors, but that would require adjusting the call signatures for all the existing methods like getDays() or providing our own justification of fractional intervals. Neither of these seem like a good idea without a strong use case.
      • equals

        public boolean equals​(java.lang.Object obj)
        Returns whether an object is equal to this one or not
        Overrides:
        equals in class PGobject
        Parameters:
        obj - Object to compare with
        Returns:
        true if the two intervals are identical
      • hashCode

        public int hashCode()
        Returns a hashCode for this object
        Overrides:
        hashCode in class PGobject
        Returns:
        hashCode