2 * ============LICENSE_START=======================================================
3 * ONAP : ccsdk features
4 * ================================================================================
5 * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.filters;
24 import org.eclipse.jdt.annotation.Nullable;
26 public class RangeSqlDBFilter extends DBKeyValuePair<Object> implements SqlDBFilter {
28 private final String comparator;
30 public RangeSqlDBFilter(String property, Object value, String comparator) {
31 super(property, value);
32 this.comparator = comparator;
36 public String getFilterExpression() {
37 if (isNumericValue(this.getValue())) {
38 return String.format("`%s`%s%d", this.getKey(), this.comparator, this.getValue());
40 return String.format("`%s`%s'%s'", this.getKey(), this.comparator, this.getValue());
44 public static @Nullable String between(String property, String lowerEnd, boolean incLowerEnd, String upperEnd,
45 boolean incUpperEnd) {
46 return String.format("(%s AND %s)",
47 new RangeSqlDBFilter(property, lowerEnd, incLowerEnd ? ">=" : ">").getFilterExpression(),
48 new RangeSqlDBFilter(property, upperEnd, incUpperEnd ? "<=" : "<").getFilterExpression());