/**
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
* Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
* Copyright © 2017-2018 Amdocs
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
*/
package org.onap.aai.sparky.search.filters.entity;
import java.util.ArrayList;
import java.util.List;
import org.onap.aai.sparky.search.filters.config.UiFilterConfig;
import org.onap.aai.sparky.search.filters.config.UiFilterOptionsValuesConfig;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
/**
* Stores data for a single filter for a given UI view.
*
* When a UI view wants to know which filters it should display, an object of this class is created for each
* filter discovered and stores data for that filter. Each filter/object of this class is added to a
* ViewFilterList object which is then serialized to JSON and returned to the view in the response body.
*/
@JsonInclude(Include.NON_NULL)
public class UiFilterEntity {
private String filterId;
private String filterName;
private String displayName;
private String dataType;
private String multiSelect;
private String watermark;
private UiFilterOptionsValuesConfig defaultValue;
private String optionsType;
private List optionsValues;
private List filterValueList;
public UiFilterEntity() {}
public UiFilterEntity(UiFilterConfig filterConfig) {
if (filterConfig.getFilterId() != null) {
this.setFilterId(filterConfig.getFilterId());
}
if (filterConfig.getFilterName() != null) {
this.setFilterName(filterConfig.getFilterName());
}
if (filterConfig.getDisplayName() != null) {
this.setDisplayName(filterConfig.getDisplayName());
}
if (filterConfig.getDataType() != null) {
this.setDataType(filterConfig.getDataType());
}
if (filterConfig.getMultiSelect() != null) {
this.setMultiSelect(filterConfig.getMultiSelect());
}
if (filterConfig.getWatermark() != null) {
this.setWatermark(filterConfig.getWatermark());
}
if (filterConfig.getDefaultValue() != null) {
this.setDefaultValue(filterConfig.getDefaultValue());
}
if (filterConfig.getOptionsType() != null) {
this.setOptionsType(filterConfig.getOptionsType());
}
if(filterConfig.getOptionsValues() != null && !filterConfig.getOptionsValues().isEmpty()) {
this.setOptionsValues(filterConfig.getOptionsValues());
} else {
this.optionsValues = new ArrayList();
}
}
public void addFilterValue(UiFilterValueEntity valueEntity) {
if (null == filterValueList) {
filterValueList = new ArrayList<>();
}
this.filterValueList.add(valueEntity);
}
public String getFilterId() {
return filterId;
}
public String getFilterName() {
return filterName;
}
public String getDisplayName() {
return displayName;
}
public String getDataType() {
return dataType;
}
public UiFilterOptionsValuesConfig getDefaultValue() {
return defaultValue;
}
public List getFilterValueList() {
return filterValueList;
}
public void setFilterId(String filterId) {
this.filterId = filterId;
}
public void setFilterName(String filterName) {
this.filterName = filterName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public void setDataType(String dataType) {
this.dataType = dataType;
}
public String getMultiSelect() {
return multiSelect;
}
public void setMultiSelect(String multiSelect) {
this.multiSelect = multiSelect;
}
public String getWatermark() {
return watermark;
}
public void setWatermark(String watermark) {
this.watermark = watermark;
}
public String getOptionsType() {
return optionsType;
}
public void setOptionsType(String optionsType) {
this.optionsType = optionsType;
}
public List getOptionsValues() {
return optionsValues;
}
public void setOptionsValues(List optionsValues) {
this.optionsValues = optionsValues;
}
public void setDefaultValue(UiFilterOptionsValuesConfig defaultValue) {
this.defaultValue = defaultValue;
}
public void setFilterValueList(List values) {
this.filterValueList = values;
}
}