
com.github.alittlehuang.data.query.support.model.OrdersModel Maven / Gradle / Ivy
package com.github.alittlehuang.data.query.support.model;
import com.github.alittlehuang.data.query.specification.Direction;
import com.github.alittlehuang.data.query.specification.Expression;
import com.github.alittlehuang.data.query.specification.Orders;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jetbrains.annotations.NotNull;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@Data
@EqualsAndHashCode(callSuper = true)
public class OrdersModel extends ExpressionModel implements Orders, Serializable {
protected Direction direction = Direction.ASC;
public OrdersModel() {
}
public OrdersModel(Expression expression, Class extends T> javaType) {
super(expression, javaType);
}
@NotNull
public static OrdersModel convertOrders(@NotNull Orders orders, Class extends T> javaType) {
if (orders.getClass() == OrdersModel.class) {
return (OrdersModel) orders;
}
OrdersModel result = new OrdersModel<>(orders, javaType);
result.setDirection(orders.getDirection());
return result;
}
public static List> convertOrders(List extends Orders> expression,
Class extends T> javaType) {
if (expression == null || expression.isEmpty()) {
return Collections.emptyList();
}
return expression.stream().map(i -> convertOrders(i, javaType)).collect(Collectors.toList());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy