@Filterable - redundent/lombok-pg GitHub Wiki
@Filterable
Overview
Generates Functions and Predicates for the fields with this annotation. What is generated depends on the type of field
Example
With Lombok
import java.sql.Timestamp;
import lombok.Filterable;
public class DataObject {
@Filterable
private long dataObjectId;
@Filterable
private String name;
private String description;
@Filterable
private Timestamp createdDate;
private Timestamp updatedDate;
}
Vanilla Java
import java.sql.Timestamp;
import lombok.Function;
import lombok.Predicate
public class DataObject implements XmlSerializable {
private long dataObjectId;
private String name;
private String description;
private Timestamp createdDate;
private Timestamp updatedDate;
@Predicate
public static boolean dataObjectIdEquals(final DataObject dataObject, final long _dataObjectId) {
return dataObject.dataObjectId == _dataObjectId;
}
@Predicate
public static boolean dataObjectIdGreaterThan(final DataObject dataObject, final long _dataObjectId) {
return dataObject.dataObjectId > _dataObjectId;
}
@Predicate
public static boolean dataObjectIdGreaterThanEqual(final DataObject dataObject, final long _dataObjectId) {
return dataObject.dataObjectId >= _dataObjectId;
}
@Predicate
public static boolean dataObjectIdLessThan(final DataObject dataObject, final long _dataObjectId) {
return dataObject.dataObjectId < _dataObjectId;
}
@Predicate
public static boolean dataObjectIdLessThanEqual(final DataObject dataObject, final long _dataObjectId) {
return dataObject.dataObjectId <= _dataObjectId;
}
@Function
public static long dataObjectId(final DataObject dataObject) {
return dataObject.dataObjectId;
}
@Predicate
public static boolean nameEquals(final DataObject dataObject, final String _name) {
return dataObject.name.equals(_name);
}
@Predicate
public static boolean nameContains(final DataObject dataObject, final String _name) {
return dataObject.name.contains(_name);
}
@Predicate
public static boolean nameStartsWith(final DataObject dataObject, final String _name) {
return dataObject.name.startsWith(_name);
}
@Predicate
public static boolean nameEndsWith(final DataObject dataObject, final String _name) {
return dataObject.name.endsWith(_name);
}
@Function
public static String name(final DataObject dataObject) {
return dataObject.name;
}
@Predicate
public static boolean startDateEquals(final DataObject dataObject, final Timestamp _startDate) {
return dataObject.startDate.equals(_startDate);
}
@Predicate
public static boolean startDateGreaterThan(final DataObject dataObject, final Timestamp _startDate) {
return dataObject.startDate.after(_startDate);
}
@Predicate
public static boolean startDateGreaterThanEqual(final DataObject dataObject, final Timestamp _startDate) {
return dataObject.startDate.after(_startDate) || dataObject.startDate.equals(_startDate);
}
@Predicate
public static boolean startDateLessThan(final DataObject dataObject, final Timestamp _startDate) {
return dataObject.startDate.before(_startDate);
}
@Predicate
public static boolean startDateLessThanEqual(final DataObject dataObject, final Timestamp _startDate) {
return dataObject.startDate.before(_startDate) || dataObject.startDate.equals(_startDate);
}
@Function
public static Timestamp startDate(final DataObject dataObject) {
return dataObject.startDate;
}
}