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

mboog.support.example.OrderByAppend Maven / Gradle / Ivy

package mboog.support.example;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * @author LiYi
 * @param 
 */
public class OrderByAppend> {

    private static final String DESC = "desc";

    private Map map;

    private boolean ignoreNull;

    private boolean ignoreEmpty;

    public OrderByAppend() {
        this.map = new LinkedHashMap<>();
    }

    /**
     * Ignore value if it's null or empty.
     * @return this
     */
    public OrderByAppend ignoreNull() {
        return ignoreNull(true);
    }

    /**
     * Ignore value if it's null or empty.
     *
     * @param ignore ignore
     * @return this
     */
    public OrderByAppend ignoreNull(boolean ignore) {
        return ignoreNull(ignore, ignore);
    }

    /**
     * Ignore value if it's null or empty.
     *
     * @param ignoreNull  value is null
     * @param ignoreEmpty value is empty
     * @return this
     */
    public OrderByAppend ignoreNull(boolean ignoreNull, boolean ignoreEmpty) {
        this.ignoreNull = ignoreNull;
        this.ignoreEmpty = ignoreEmpty;
        return this;
    }


    private OrderByAppend append(String column, String tag) {
        if (column == null) {
            if (ignoreNull) {
                return this;
            }
            throw new RuntimeException("Value for column cannot be null");
        } else if ("".equals(column.trim())) {
            if (ignoreEmpty) {
                return this;
            }
            throw new RuntimeException("Value for column cannot be empty");
        }
        map.put(column, tag);
        return this;
    }

    public OrderByAppend appendAsc(C column) {
        return append(((CInterface) column).aliasDelimitedName(), null);
    }

    public OrderByAppend appendAsc(String column) {
        return append(column, null);
    }


    public OrderByAppend appendDesc(C column) {
        return append(((CInterface) column).aliasDelimitedName(), DESC);
    }

    public OrderByAppend appendDesc(String column) {
        return append(column, DESC);
    }

    public String toOrderByString() {
        if (map.size() > 0) {
            List list = new ArrayList<>();
            map.forEach((key, value) -> {
                if (value != null) {
                    list.add(key + " " + value);
                } else {
                    list.add(key);
                }
            });
            return String.join(",", list);
        }
        return null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy