/*
* RHQ Management Platform
* Copyright (C) 2005-2008 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, version 2, as
* published by the Free Software Foundation, and/or the GNU Lesser
* General Public License, version 2.1, also as published by the Free
* Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License and the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License
* and the GNU Lesser General Public License along with this program;
* if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package org.rhq.core.domain.criteria;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import org.rhq.core.domain.measurement.DataType;
import org.rhq.core.domain.measurement.DisplayType;
import org.rhq.core.domain.measurement.MeasurementCategory;
import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.core.domain.measurement.NumericType;
import org.rhq.core.domain.util.PageOrdering;
/**
* @author Joseph Marques
*/
@XmlAccessorType(XmlAccessType.FIELD)
@SuppressWarnings("unused")
public class MeasurementDefinitionCriteria extends Criteria {
private static final long serialVersionUID = 2L;
private String filterName;
private String filterDisplayName;
private String filterDescription;
private String filterResourceTypeName; // requires overrides
private String filterPluginName; // requires overrides
private Integer filterResourceTypeId; // requires overrides
private MeasurementCategory filterCategory;
private MeasurementUnits filterUnits;
private NumericType filterNumericType;
private DataType filterDataType;
private DisplayType filterDisplayType;
private Boolean filterDefaultOn;
private Long filterDefaultInterval;
private boolean fetchResourceType;
private PageOrdering sortName;
private PageOrdering sortDisplayName;
private PageOrdering sortResourceTypeName; // requires overrides
private PageOrdering sortCategory;
private PageOrdering sortUnits;
private PageOrdering sortNumericType;
private PageOrdering sortDataType;
private PageOrdering sortDisplayType;
private PageOrdering sortDefaultOn;
private PageOrdering sortDefaultInterval;
public MeasurementDefinitionCriteria() {
filterOverrides.put("resourceTypeName", "resourceType.name like ?");
filterOverrides.put("pluginName", "resourceType.plugin like ?");
filterOverrides.put("resourceTypeId", "resourceType.id = ?");
sortOverrides.put("resourceTypeName", "resourceType.name");
}
@Override
public Class<MeasurementDefinition> getPersistentClass() {
return MeasurementDefinition.class;
}
public void addFilterName(String filterName) {
this.filterName = filterName;
}
public void addFilterDisplayName(String filterDisplayName) {
this.filterDisplayName = filterDisplayName;
}
public void addFilterDescription(String filterDescription) {
this.filterDescription = filterDescription;
}
public void addFilterResourceTypeName(String filterResourceTypeName) {
this.filterResourceTypeName = filterResourceTypeName;
}
public void addFilterPluginName(String filterPluginName) {
this.filterPluginName = filterPluginName;
}
public void addFilterResourceTypeId(Integer filterResourceTypeId) {
this.filterResourceTypeId = filterResourceTypeId;
}
public void addFilterCategory(MeasurementCategory filterCategory) {
this.filterCategory = filterCategory;
}
public void addFilterUnits(MeasurementUnits filterUnits) {
this.filterUnits = filterUnits;
}
public void addFilterNumericType(NumericType filterNumericType) {
this.filterNumericType = filterNumericType;
}
public void addFilterDataType(DataType filterDataType) {
this.filterDataType = filterDataType;
}
public void addFilterDisplayType(DisplayType filterDisplayType) {
this.filterDisplayType = filterDisplayType;
}
public void addFilterDefaultOn(Boolean filterDefaultOn) {
this.filterDefaultOn = filterDefaultOn;
}
public void addFilterDefaultInterval(Long filterDefaultInterval) {
this.filterDefaultInterval = filterDefaultInterval;
}
public void addSortName(PageOrdering sortName) {
addSortField("name");
this.sortName = sortName;
}
public void addSortDisplayName(PageOrdering sortDisplayName) {
addSortField("displayName");
this.sortDisplayName = sortDisplayName;
}
public void addSortResourceTypeName(PageOrdering sortResourceTypeName) {
addSortField("resourceTypeName");
this.sortResourceTypeName = sortResourceTypeName;
}
public void addSortCategory(PageOrdering sortCategory) {
addSortField("category");
this.sortCategory = sortCategory;
}
public void addSortUnits(PageOrdering sortUnits) {
addSortField("units");
this.sortUnits = sortUnits;
}
public void addSortNumericType(PageOrdering sortNumericType) {
addSortField("numericType");
this.sortNumericType = sortNumericType;
}
public void addSortDataType(PageOrdering sortDataType) {
addSortField("dataType");
this.sortDataType = sortDataType;
}
public void addSortDisplayType(PageOrdering sortDisplayType) {
addSortField("displayType");
this.sortDisplayType = sortDisplayType;
}
public void addSortDefaultOn(PageOrdering sortDefaultOn) {
addSortField("defaultOn");
this.sortDefaultOn = sortDefaultOn;
}
public void addSortDefaultInterval(PageOrdering sortDefaultInterval) {
addSortField("defaultInterval");
this.sortDefaultInterval = sortDefaultInterval;
}
public void fetchResourceType(boolean value) {
this.fetchResourceType = value;
}
}