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 IsThursday extends ColumnFilter { public IsThursday(ColumnReference columnReference) { super(columnReference); } @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.isThursday(); case LOCAL_DATE_TIME: DateTimeColumn dateTimeColumn = relation.dateTimeColumn(name); return dateTimeColumn.isThursday(); default: throw new UnsupportedOperationException("Columns of type " + type.name() + " do not support the operation " + "isThursday() "); } } }