Class Days<T>

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

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

      Constructors 
      Constructor Description
      Days()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      SerializableFunction<S,​java.lang.Integer> bind​(Type type)
      Returns a function that applies this transform to values of the given type.
      boolean canTransform​(Type type)
      Checks whether this function can be applied to the given Type.
      java.lang.String dedupName()
      Return the unique transform name to check if similar transforms for the same source field are added multiple times in partition spec builder.
      protected static <R> R fromSourceType​(Type type, R dateResult, R microsResult, R nanosResult)  
      Type getResultType​(Type sourceType)
      Returns the Type produced by this transform given a source type.
      protected java.time.temporal.ChronoUnit granularity()  
      boolean preservesOrder()
      Whether the transform preserves the order of values (is monotonic).
      UnboundPredicate<java.lang.Integer> project​(java.lang.String name, BoundPredicate<S> predicate)
      Transforms a predicate to an inclusive predicate on the partition values produced by the transform.
      UnboundPredicate<java.lang.Integer> projectStrict​(java.lang.String name, BoundPredicate<S> predicate)
      Transforms a predicate to a strict predicate on the partition values produced by the transform.
      boolean satisfiesOrderOf​(Transform<?,​?> other)
      Whether ordering by this transform's result satisfies the ordering of another transform's result.
      protected Transform<T,​java.lang.Integer> toEnum​(Type type)  
      java.lang.String toHumanString​(Type alwaysDate, java.lang.Integer value)  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Days

        public Days()
    • Method Detail

      • granularity

        protected java.time.temporal.ChronoUnit granularity()
      • 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
      • toHumanString

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

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

        protected static <R> R fromSourceType​(Type type,
                                              R dateResult,
                                              R microsResult,
                                              R nanosResult)
      • 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
      • 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).

        Specified by:
        satisfiesOrderOf in interface Transform<S,​java.lang.Integer>
        Returns:
        true if ordering by this transform is equivalent to ordering by the other transform
      • 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