package com.github.lwhite1.tablesaw.filtering.datetimes; import com.github.lwhite1.tablesaw.api.ColumnType; import com.github.lwhite1.tablesaw.api.DateColumn; import com.github.lwhite1.tablesaw.api.DateTimeColumn; import com.github.lwhite1.tablesaw.api.Table; import com.github.lwhite1.tablesaw.columns.Column; import com.github.lwhite1.tablesaw.columns.ColumnReference; import com.github.lwhite1.tablesaw.filtering.ColumnFilter; import com.github.lwhite1.tablesaw.util.Selection; /** * */ public class IsInFebruary extends ColumnFilter { public IsInFebruary(ColumnReference reference) { super(reference); } @Override public Selection apply(Table relation) { String name = columnReference().getColumnName(); Column column = relation.column(name); ColumnType type = column.type(); switch (type) { case LOCAL_DATE: DateColumn dateColumn = relation.dateColumn(name); return dateColumn.isInFebruary(); case LOCAL_DATE_TIME: DateTimeColumn dateTimeColumn = relation.dateTimeColumn(name); return dateTimeColumn.isInFebruary(); default: throw new UnsupportedOperationException("Columns of type " + type.name() + " do not support the operation " + "isInFebruary() "); } } }