Class Months<T>

  • All Implemented Interfaces:
    java.io.Serializable, Transform<T,​java.lang.Integer>

    public class Months<T>
    extends java.lang.Object
    See Also:
    Serialized Form
    • Constructor Detail

      • Months

        public Months()
    • Method Detail

      • toEnum

        protected Transform<T,​java.lang.Integer> toEnum​(Type type)
      • getResultType

        public Type getResultType​(Type sourceType)
        Description copied from interface: Transform
        Returns the Type produced by this transform given a source type.
        Parameters:
        sourceType - a type
        Returns:
        the result type created by the apply method for the given type
      • satisfiesOrderOf

        public boolean satisfiesOrderOf​(Transform<?,​?> other)
        Description copied from interface: Transform
        Whether ordering by this transform's result satisfies the ordering of another transform's result.

        For example, sorting by day(ts) will produce an ordering that is also by month(ts) or year(ts). However, sorting by day(ts) will not satisfy the order of hour(ts) or identity(ts).

        Returns:
        true if ordering by this transform is equivalent to ordering by the other transform
      • toHumanString

        public java.lang.String toHumanString​(Type alwaysInt,
                                              java.lang.Integer value)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • bind

        public SerializableFunction<S,​java.lang.Integer> bind​(Type type)
        Description copied from interface: Transform
        Returns a function that applies this transform to values of the given type.
        Specified by:
        bind in interface Transform<S,​java.lang.Integer>
        Parameters:
        type - an Iceberg Type
        Returns:
        a Function that applies this transform to values of the given type.
      • preservesOrder

        public boolean preservesOrder()
        Description copied from interface: Transform
        Whether the transform preserves the order of values (is monotonic).

        A transform preserves order for values when for any given a and b, if a < b then apply(a) <= apply(b).

        Specified by:
        preservesOrder in interface Transform<S,​java.lang.Integer>
        Returns:
        true if the transform preserves the order of values
      • canTransform

        public boolean canTransform​(Type type)
        Description copied from interface: Transform
        Checks whether this function can be applied to the given Type.
        Specified by:
        canTransform in interface Transform<S,​java.lang.Integer>
        Parameters:
        type - a type
        Returns:
        true if this transform can be applied to the type, false otherwise
      • project

        public UnboundPredicate<java.lang.Integer> project​(java.lang.String name,
                                                           BoundPredicate<S> predicate)
        Description copied from interface: Transform
        Transforms a predicate to an inclusive predicate on the partition values produced by the transform.

        This inclusive transform guarantees that if pred(v) is true, then projected(apply(v)) is true.

        Specified by:
        project in interface Transform<S,​java.lang.Integer>
        Parameters:
        name - the field name for partition values
        predicate - a predicate for source values
        Returns:
        an inclusive predicate on partition values
      • projectStrict

        public UnboundPredicate<java.lang.Integer> projectStrict​(java.lang.String name,
                                                                 BoundPredicate<S> predicate)
        Description copied from interface: Transform
        Transforms a predicate to a strict predicate on the partition values produced by the transform.

        This strict transform guarantees that if strict(apply(v)) is true, then pred(v) is also true.

        Specified by:
        projectStrict in interface Transform<S,​java.lang.Integer>
        Parameters:
        name - the field name for partition values
        predicate - a predicate for source values
        Returns:
        an inclusive predicate on partition values
      • dedupName

        public java.lang.String dedupName()
        Description copied from interface: Transform
        Return the unique transform name to check if similar transforms for the same source field are added multiple times in partition spec builder.
        Specified by:
        dedupName in interface Transform<S,​java.lang.Integer>
        Returns:
        a name used for dedup