/* * Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * WSO2 Inc. licenses this file to you 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 org.wso2.carbon.governance.gadgets.impactanalysis.services.util; import javax.xml.namespace.QName; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.governance.api.exception.GovernanceException; import org.wso2.carbon.governance.api.policies.dataobjects.Policy; import org.wso2.carbon.governance.api.schema.dataobjects.Schema; import org.wso2.carbon.governance.api.services.ServiceManager; import org.wso2.carbon.governance.api.services.dataobjects.Service; import org.wso2.carbon.governance.api.wsdls.dataobjects.Wsdl; import org.wso2.carbon.governance.gadgets.impactanalysis.beans.ImpactBean; import org.wso2.carbon.governance.gadgets.impactanalysis.beans.PolicyBean; import org.wso2.carbon.governance.gadgets.impactanalysis.beans.SchemaBean; import org.wso2.carbon.governance.gadgets.impactanalysis.beans.ServiceBean; import org.wso2.carbon.governance.gadgets.impactanalysis.beans.WSDLBean; public class BeanUtils { private static final Log log = LogFactory.getLog(BeanUtils.class); public static ImpactBean populateImpactBean(ServiceManager manager) throws GovernanceException { ImpactBean impactBean = new ImpactBean(); impactBean.setServiceBean(populateServicesBean(manager)); return impactBean; } public static ServiceBean[] populateServicesBean(ServiceManager manager) throws GovernanceException { String[] serviceIds = manager.getAllServiceIds(); if (serviceIds == null) return null; ServiceBean[] serviceBeans = new ServiceBean[serviceIds.length]; for (int i = 0; i < serviceIds.length; i++) { serviceBeans[i] = new ServiceBean(); if (serviceIds[i] != null) { Service service = manager.getService(serviceIds[i]); if(service != null ) { serviceBeans[i].setWsdlBeans(populateWSDLBean(service.getAttachedWsdls())); serviceBeans[i].setSchemaBeans(populateSchemaBean(service.getAttachedSchemas())); serviceBeans[i].setPolicyBeans(populatePolicyBean(service.getAttachedPolicies())); serviceBeans[i].setId(service.getId()); serviceBeans[i].setPath(service.getPath()); serviceBeans[i].setqName(getName(service.getQName())); } } } return serviceBeans; } public static WSDLBean[] populateWSDLBean(Wsdl[] wsdls) throws GovernanceException { if (wsdls == null) return null; WSDLBean[] wsdlBean = new WSDLBean[wsdls.length]; for (int j = 0; j < wsdls.length; j++) { wsdlBean[j] = new WSDLBean(); if (wsdls[j] != null) { wsdlBean[j].setId(wsdls[j].getId()); wsdlBean[j].setPath(wsdls[j].getPath()); wsdlBean[j].setqName(getName(wsdls[j].getQName())); wsdlBean[j].setAttachedSchemas(populateSchemaBean(wsdls[j].getAttachedSchemas())); } } return wsdlBean; } public static PolicyBean[] populatePolicyBean(Policy[] policies) { if (policies == null) return null; PolicyBean[] policyBean = new PolicyBean[policies.length]; for (int j = 0; j < policies.length; j++) { policyBean[j] = new PolicyBean(); if (policies[j] != null) { policyBean[j].setId(policies[j].getId()); try { policyBean[j].setPath(policies[j].getPath()); } catch (GovernanceException e) { String msg = "Error in getting the path from the policy."; log.error(msg, e); } policyBean[j].setqName(getName(policies[j].getQName())); } } return policyBean; } public static SchemaBean[] populateSchemaBean(Schema[] schemas) { if (schemas == null) return null; SchemaBean[] schemaBean = new SchemaBean[schemas.length]; for (int j = 0; j < schemas.length; j++) { schemaBean[j] = new SchemaBean(); if (schemas[j] != null) { schemaBean[j].setId(schemas[j].getId()); try { schemaBean[j].setPath(schemas[j].getPath()); } catch (GovernanceException e) { String msg = "Error in getting the path."; log.error(msg); } schemaBean[j].setqName(getName(schemas[j].getQName())); } } return schemaBean; } private static String getName(QName qName) { return qName.getLocalPart() + " - " + qName.getNamespaceURI(); } }