/*
* Copyright (c) 2010-2016 Evolveum
*
* 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.
*/
package com.evolveum.midpoint.web.page.admin.certification.dto;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.xnode.RootXNode;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.exception.SystemException;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ExpressionType;
import com.evolveum.prism.xml.ns._public.query_3.SearchFilterType;
import javax.xml.namespace.QName;
import java.io.Serializable;
import java.util.List;
/**
* @author Kate
*/
public class DefinitionScopeDto implements Serializable {
public static final String F_NAME = "name";
public static final String F_DESCRIPTION = "description";
public static final String F_OBJECT_TYPE = "objectType";
public static final String F_SEARCH_FILTER_TEXT = "searchFilterText";
public static final String F_INCLUDE_ASSIGNMENTS = "includeAssignments";
public static final String F_INCLUDE_INDUCEMENTS = "includeInducements";
public static final String F_INCLUDE_RESOURCES = "includeResources";
public static final String F_INCLUDE_ROLES = "includeRoles";
public static final String F_INCLUDE_ORGS = "includeOrgs";
public static final String F_INCLUDE_SERVICES = "includeServices";
public static final String F_INCLUDE_ENABLED_ITEMS_ONLY = "enabledItemsOnly";
private String name;
private String description;
private DefinitionScopeObjectType objectType;
private String searchFilterText;
private boolean includeAssignments;
private boolean includeInducements;
private boolean includeResources;
private boolean includeRoles;
private boolean includeOrgs;
private boolean includeServices;
private boolean includeUsers;
private boolean enabledItemsOnly;
private ExpressionType itemSelectionExpression;
private List<QName> relationList;
public void loadSearchFilter(SearchFilterType searchFilterType, PrismContext prismContext) {
if (searchFilterType == null) {
return;
}
try {
RootXNode clause = searchFilterType.getFilterClauseAsRootXNode();
searchFilterText = prismContext.xmlSerializer().serialize(clause);
} catch (SchemaException e) {
throw new SystemException("Cannot serialize search filter " + searchFilterType + ": " + e.getMessage(), e);
}
}
public SearchFilterType getParsedSearchFilter(PrismContext context) {
if (searchFilterText == null || searchFilterText.isEmpty()) {
return null;
}
SearchFilterType rv = new SearchFilterType();
RootXNode filterClauseNode;
try {
filterClauseNode = (RootXNode) context.parserFor(searchFilterText).xml().parseToXNode();
} catch (SchemaException e) {
throw new SystemException("Cannot parse search filter " + searchFilterText + ": " + e.getMessage(), e);
}
rv.setFilterClauseXNode(filterClauseNode);
return rv;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public DefinitionScopeObjectType getObjectType() {
return objectType;
}
public void setObjectType(DefinitionScopeObjectType objectType) {
this.objectType = objectType;
}
public String getSearchFilterText() {
return searchFilterText;
}
public void setSearchFilterText(String searchFilterText) {
this.searchFilterText = searchFilterText;
}
public boolean isIncludeAssignments() {
return includeAssignments;
}
public void setIncludeAssignments(boolean includeAssignments) {
this.includeAssignments = includeAssignments;
}
public boolean isIncludeInducements() {
return includeInducements;
}
public void setIncludeInducements(boolean includeInducements) {
this.includeInducements = includeInducements;
}
public boolean isIncludeResources() {
return includeResources;
}
public void setIncludeResources(boolean includeResources) {
this.includeResources = includeResources;
}
public boolean isIncludeRoles() {
return includeRoles;
}
public void setIncludeRoles(boolean includeRoles) {
this.includeRoles = includeRoles;
}
public boolean isIncludeOrgs() {
return includeOrgs;
}
public void setIncludeOrgs(boolean includeOrgs) {
this.includeOrgs = includeOrgs;
}
public boolean isIncludeServices() {
return includeServices;
}
public void setIncludeServices(boolean includeServices) {
this.includeServices = includeServices;
}
public boolean isIncludeUsers() {
return includeUsers;
}
public void setIncludeUsers(boolean includeUsers) {
this.includeUsers = includeUsers;
}
public boolean isEnabledItemsOnly() {
return enabledItemsOnly;
}
public void setEnabledItemsOnly(boolean enabledItemsOnly) {
this.enabledItemsOnly = enabledItemsOnly;
}
public ExpressionType getItemSelectionExpression() {
return itemSelectionExpression;
}
public void setItemSelectionExpression(ExpressionType itemSelectionExpression) {
this.itemSelectionExpression = itemSelectionExpression;
}
public List<QName> getRelationList() {
return relationList;
}
public void setRelationList(List<QName> relationList) {
this.relationList = relationList;
}
}