/* * RHQ Management Platform * Copyright (C) 2011 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 as published by * the Free Software Foundation version 2 of the License. * * 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 for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.rhq.core.domain.criteria; import static org.rhq.core.domain.util.CriteriaUtils.getListIgnoringNulls; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import org.rhq.core.domain.drift.DriftCategory; import org.rhq.core.domain.drift.DriftConfigurationDefinition.DriftHandlingMode; import org.rhq.core.domain.util.PageControl; import org.rhq.core.domain.util.PageOrdering; /** * The generic implementation of DriftCriteria makes no assumptions about the actual drift server * plugin that will service the relevant requests. It is a simple impl of the interface and is * suitable for use by any component that can not assume a backend implmentation, like a GUI * client. Server side implementations will use this to populate the plugin-specific implementation * of the interface. * * @author Jay Shaughnessy * @author John Sanda */ public class GenericDriftCriteria implements Serializable, DriftCriteria { private static final long serialVersionUID = 1L; private String filterId; private List<DriftCategory> filterCategories = new ArrayList<DriftCategory>(); private String filterChangeSetId; private Integer filterChangeSetStartVersion; private Integer filterChangeSetEndVersion; private Integer filterDriftDefinitionId; private List<DriftHandlingMode> filterDriftHandlingModes = new ArrayList<DriftHandlingMode>(); private String filterPath; private String filterDirectory; private List<Integer> filterResourceIds = new ArrayList<Integer>(); private boolean fetchChangeSet; private Long filterStartTime; private Long filterEndTime; private PageControl pageControl; private PageOrdering sortId; private PageOrdering sortCtime; private boolean strict; @Override public void addFilterId(String filterId) { this.filterId = filterId; } @Override public String getFilterId() { return filterId; } @Override public void addFilterCategories(DriftCategory... filterCategories) { this.filterCategories = getListIgnoringNulls(filterCategories); } @Override public DriftCategory[] getFilterCategories() { return filterCategories.toArray(new DriftCategory[filterCategories.size()]); } @Override public void addFilterChangeSetId(String filterChangeSetId) { this.filterChangeSetId = filterChangeSetId; } @Override public String getFilterChangeSetId() { return filterChangeSetId; } @Override public void addFilterChangeSetStartVersion(Integer filterChangeSetStartVersion) { this.filterChangeSetStartVersion = filterChangeSetStartVersion; } @Override public Integer getFilterChangeSetStartVersion() { return filterChangeSetStartVersion; } @Override public void addFilterChangeSetEndVersion(Integer filterChangeSetEndVersion) { this.filterChangeSetEndVersion = filterChangeSetEndVersion; } @Override public void addFilterDriftDefinitionId(Integer filterDriftDefinitionId) { this.filterDriftDefinitionId = filterDriftDefinitionId; } @Override public Integer getFilterDriftDefinitionId() { return this.filterDriftDefinitionId; } @Override public void addFilterDriftHandlingModes(DriftHandlingMode... filterDriftHandlingModes) { this.filterDriftHandlingModes = getListIgnoringNulls(filterDriftHandlingModes); } @Override public DriftHandlingMode[] getFilterDriftHandlingModes() { return filterDriftHandlingModes.toArray(new DriftHandlingMode[filterDriftHandlingModes.size()]); } @Override public Integer getFilterChangeSetEndVersion() { return filterChangeSetEndVersion; } @Override public void addFilterPath(String filterPath) { this.filterPath = filterPath; } @Override public String getFilterPath() { return filterPath; } @Override public void addFilterDirectory(String filterDirectory) { this.filterDirectory = filterDirectory; } @Override public String getFilterDirectory() { return filterDirectory; } @Override public void addFilterResourceIds(Integer... filterResourceIds) { this.filterResourceIds = getListIgnoringNulls(filterResourceIds); } @Override public Integer[] getFilterResourceIds() { return filterResourceIds.toArray(new Integer[filterResourceIds.size()]); } @Override public void addFilterStartTime(Long filterStartTime) { this.filterStartTime = filterStartTime; } @Override public Long getFilterStartTime() { return filterStartTime; } @Override public void addFilterEndTime(Long filterEndTime) { this.filterEndTime = filterEndTime; } @Override public Long getFilterEndTime() { return filterEndTime; } @Override public void fetchChangeSet(boolean fetchChangeSet) { this.fetchChangeSet = fetchChangeSet; } @Override public boolean isFetchChangeSet() { return fetchChangeSet; } @Override public void addSortId(PageOrdering sortId) { this.sortId = sortId; } @Override public void addSortCtime(PageOrdering sortCtime) { this.sortCtime = sortCtime; } @Override public PageOrdering getSortCtime() { return sortCtime; } @Override public PageControl getPageControlOverrides() { return pageControl; } @Override public void setPageControl(PageControl pageControl) { this.pageControl = pageControl; } @Override public void setStrict(boolean strict) { this.strict = strict; } @Override public boolean isStrict() { return this.strict; } @Override public void setPaging(int pageNumber, int pageSize) { pageControl.setPageNumber(pageNumber); pageControl.setPageSize(pageSize); } @Override public List<String> getOrderingFieldNames() { List<String> result = new ArrayList<String>(2); if (null != sortId) { result.add("id"); } if (null != sortCtime) { result.add("ctime"); } return result; } }