/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.vipr.client.catalog.search;
import static com.emc.vipr.client.catalog.impl.SearchConstants.END_TIME_PARAM;
import static com.emc.vipr.client.catalog.impl.SearchConstants.ORDER_MAX_COUNT;
import static com.emc.vipr.client.catalog.impl.SearchConstants.ORDER_STATUS_PARAM;
import static com.emc.vipr.client.catalog.impl.SearchConstants.START_TIME_PARAM;
import static com.emc.vipr.client.catalog.impl.SearchConstants.TENANT_ID_PARAM;
import static com.emc.vipr.client.catalog.impl.SearchConstants.ORDER_MAX_COUNT;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
import com.emc.vipr.client.core.AbstractResources;
import com.emc.vipr.client.core.search.SearchBuilder;
import com.emc.vipr.model.catalog.OrderRestRep;
public class OrderSearchBuilder extends SearchBuilder<OrderRestRep> {
private static final String NO_LIMIT_FOR_MAX_COUNT = "-1";
public OrderSearchBuilder(AbstractResources<OrderRestRep> resources) {
super(resources);
}
public SearchBuilder<OrderRestRep> byStatus(String status) {
return byStatus(status, null);
}
public SearchBuilder<OrderRestRep> byStatus(String status, URI tenantId) {
Map<String, Object> parameters = new HashMap<String, Object>();
if (tenantId != null) {
parameters.put(TENANT_ID_PARAM, tenantId);
}
parameters.put(ORDER_STATUS_PARAM, status);
return byAll(parameters);
}
public SearchBuilder<OrderRestRep> byTimeRange(String start, String end) {
return byTimeRange(start, end, null, NO_LIMIT_FOR_MAX_COUNT);
}
public SearchBuilder<OrderRestRep> byTimeRange(String start, String end, URI tenantId) {
return byTimeRange(start, end, tenantId, NO_LIMIT_FOR_MAX_COUNT);
}
public SearchBuilder<OrderRestRep> byTimeRange(String start, String end, URI tenantId, String maxCount) {
Map<String, Object> parameters = new HashMap<String, Object>();
if (tenantId != null) {
parameters.put(TENANT_ID_PARAM, tenantId);
}
if (start != null) {
parameters.put(START_TIME_PARAM, start);
}
if (end != null) {
parameters.put(END_TIME_PARAM, end);
}
if (maxCount != null) {
parameters.put(ORDER_MAX_COUNT, maxCount);
}
return byAll(parameters);
}
}