/* * RHQ Management Platform * Copyright (C) 2005-2014 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ package org.rhq.coregui.server.gwt; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.rhq.core.domain.criteria.ResourceTypeCriteria; import org.rhq.core.domain.resource.MissingPolicy; import org.rhq.core.domain.resource.ResourceType; import org.rhq.core.domain.resource.composite.ResourceLineageComposite; import org.rhq.core.domain.resource.composite.ResourceTypeTemplateCountComposite; import org.rhq.core.domain.util.PageList; import org.rhq.coregui.client.gwt.ResourceTypeGWTService; import org.rhq.coregui.server.util.SerialUtility; import org.rhq.enterprise.server.resource.ResourceManagerLocal; import org.rhq.enterprise.server.resource.ResourceTypeManagerLocal; import org.rhq.enterprise.server.util.LookupUtil; public class ResourceTypeGWTServiceImpl extends AbstractGWTServiceImpl implements ResourceTypeGWTService { private static final long serialVersionUID = 1L; @Override public void setResourceTypeIgnoreFlag(int resourceTypeId, boolean ignoreFlag) throws RuntimeException { try { ResourceTypeManagerLocal typeManager = LookupUtil.getResourceTypeManager(); typeManager.setResourceTypeIgnoreFlagAndUninventoryResources(getSessionSubject(), resourceTypeId, ignoreFlag); } catch (Throwable t) { throw getExceptionToThrowToClient(t); } } @Override public void setResourceTypeMissingPolicy(int resourceTypeId, MissingPolicy policy) throws RuntimeException { try { ResourceTypeManagerLocal typeManager = LookupUtil.getResourceTypeManager(); typeManager.setResourceTypeMissingPolicy(getSessionSubject(), resourceTypeId, policy); } catch (Throwable t) { throw getExceptionToThrowToClient(t); } } @Override public PageList<ResourceType> findResourceTypesByCriteria(ResourceTypeCriteria criteria) throws RuntimeException { try { ResourceTypeManagerLocal typeManager = LookupUtil.getResourceTypeManager(); return SerialUtility.prepare(typeManager.findResourceTypesByCriteria(getSessionSubject(), criteria), "ResourceTypes.findResourceTypesByCriteria"); } catch (Throwable t) { throw getExceptionToThrowToClient(t); } } /** * Given a resource ID, this gets all resource types for all ancestors in that resource's lineage. */ @Override public ArrayList<ResourceType> getResourceTypesForResourceAncestors(int resourceId) throws RuntimeException { try { ResourceManagerLocal manager = LookupUtil.getResourceManager(); List<ResourceLineageComposite> lineage = manager.getResourceLineage(getSessionSubject(), resourceId); ArrayList<ResourceType> types = new ArrayList<ResourceType>(lineage.size()); for (ResourceLineageComposite composite : lineage) { types.add(composite.getResource().getResourceType()); } return SerialUtility.prepare(types, "ResourceTypes.getResourceTypesForResourceAncestors"); } catch (Throwable t) { throw getExceptionToThrowToClient(t); } } @Override public ArrayList<ResourceType> getAllResourceTypeAncestors(int resourceTypeId) throws RuntimeException { try { ResourceTypeManagerLocal typeManager = LookupUtil.getResourceTypeManager(); List<ResourceType> list = typeManager.getAllResourceTypeAncestors(getSessionSubject(), resourceTypeId); return SerialUtility .prepare(new ArrayList<ResourceType>(list), "ResourceTypes.getAllResourceTypeAncestors"); } catch (Throwable t) { throw getExceptionToThrowToClient(t); } } @Override public HashMap<Integer, String> getResourceTypeDescendantsWithOperations(int resourceTypeId) throws RuntimeException { try { ResourceTypeManagerLocal typeManager = LookupUtil.getResourceTypeManager(); HashMap<Integer, String> map = typeManager.getResourceTypeDescendantsWithOperations(getSessionSubject(), resourceTypeId); return SerialUtility.prepare(map, "ResourceTypes.getResourceTypeDescendantsWithOperations"); } catch (Throwable t) { throw getExceptionToThrowToClient(t); } } @Override public Map<Integer, ResourceTypeTemplateCountComposite> getTemplateCountCompositeMap() throws RuntimeException { try { ResourceTypeManagerLocal typeManager = LookupUtil.getResourceTypeManager(); Map<Integer, ResourceTypeTemplateCountComposite> map = typeManager.getTemplateCountCompositeMap(); return SerialUtility.prepare(map, "ResourceTypes.getTemplateCountCompositeMap"); } catch (Throwable t) { throw getExceptionToThrowToClient(t); } } }