public static class CalendarWindows.YearsWindows extends PartitioningWindowFn<java.lang.Object,IntervalWindow>
WindowFn
that windows elements into periods measured by years.
By default, periods of multiple years are measured starting at the
epoch. This can be overridden with withStartingYear(int)
.
Years start on the first day of each calendar year, unless overridden by
beginningOnDay(int, int)
.
The time zone used to determine calendar boundaries is UTC, unless this
is overridden with the withTimeZone(org.joda.time.DateTimeZone)
method.
WindowFn.AssignContext, WindowFn.MergeContext
Modifier and Type | Method and Description |
---|---|
IntervalWindow |
assignWindow(Instant timestamp)
Returns the single window to which elements with this timestamp belong.
|
CalendarWindows.YearsWindows |
beginningOnDay(int monthOfYear,
int dayOfMonth) |
int |
getDayOfMonth() |
int |
getMonthOfYear() |
int |
getNumber() |
DateTime |
getStartDate() |
DateTimeZone |
getTimeZone() |
boolean |
isCompatible(WindowFn<?,?> other)
Returns whether this performs the same merging as the given
WindowFn . |
void |
populateDisplayData(DisplayData.Builder builder)
Register display data for the given transform or component.
|
void |
verifyCompatibility(WindowFn<?,?> other)
Throw
IncompatibleWindowException if this WindowFn does not perform the same merging as
the given $WindowFn . |
Coder<IntervalWindow> |
windowCoder()
Returns the
Coder used for serializing the windows used
by this windowFn. |
CalendarWindows.YearsWindows |
withStartingYear(int year) |
CalendarWindows.YearsWindows |
withTimeZone(DateTimeZone timeZone) |
assignsToOneWindow, assignWindows, getDefaultWindowMappingFn, getOutputTime
isNonMerging, mergeWindows
getWindowTypeDescriptor
public CalendarWindows.YearsWindows beginningOnDay(int monthOfYear, int dayOfMonth)
public CalendarWindows.YearsWindows withStartingYear(int year)
public CalendarWindows.YearsWindows withTimeZone(DateTimeZone timeZone)
public IntervalWindow assignWindow(Instant timestamp)
PartitioningWindowFn
assignWindow
in class PartitioningWindowFn<java.lang.Object,IntervalWindow>
public Coder<IntervalWindow> windowCoder()
WindowFn
Coder
used for serializing the windows used
by this windowFn.windowCoder
in class WindowFn<java.lang.Object,IntervalWindow>
public boolean isCompatible(WindowFn<?,?> other)
WindowFn
WindowFn
.isCompatible
in class WindowFn<java.lang.Object,IntervalWindow>
public void verifyCompatibility(WindowFn<?,?> other) throws IncompatibleWindowException
WindowFn
IncompatibleWindowException
if this WindowFn does not perform the same merging as
the given $WindowFn
.verifyCompatibility
in class WindowFn<java.lang.Object,IntervalWindow>
IncompatibleWindowException
- if compared WindowFns are not compatible.public void populateDisplayData(DisplayData.Builder builder)
WindowFn
populateDisplayData(DisplayData.Builder)
is invoked by Pipeline runners to collect
display data via DisplayData.from(HasDisplayData)
. Implementations may call
super.populateDisplayData(builder)
in order to register display data in the current
namespace, but should otherwise use subcomponent.populateDisplayData(builder)
to use
the namespace of the subcomponent.
By default, does not register any display data. Implementors may override this method to provide their own display data.
populateDisplayData
in interface HasDisplayData
populateDisplayData
in class WindowFn<java.lang.Object,IntervalWindow>
builder
- The builder to populate with display data.HasDisplayData
public DateTimeZone getTimeZone()
public DateTime getStartDate()
public int getDayOfMonth()
public int getMonthOfYear()
public int getNumber()