All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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 javaType) {
        super(expression, javaType);
    }

    @NotNull
    public static  OrdersModel convertOrders(@NotNull Orders orders, Class 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> expression,
                                                         Class 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