Package com.eviware.soapui.impl.wsdl.actions.iface

Source Code of com.eviware.soapui.impl.wsdl.actions.iface.CloneInterfaceAction

/*
* Copyright 2004-2014 SmartBear Software
*
* Licensed under the EUPL, Version 1.1 or - as soon as they will be approved by the European Commission - subsequent
* versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://ec.europa.eu/idabc/eupl
*
* Unless required by applicable law or agreed to in writing, software distributed under the Licence is
* distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the Licence for the specific language governing permissions and limitations
* under the Licence.
*/

package com.eviware.soapui.impl.wsdl.actions.iface;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import com.eviware.soapui.impl.WorkspaceImpl;
import com.eviware.soapui.impl.wsdl.WsdlInterface;
import com.eviware.soapui.impl.wsdl.WsdlProject;
import com.eviware.soapui.model.support.ModelSupport;
import com.eviware.soapui.support.SoapUIException;
import com.eviware.soapui.support.UISupport;
import com.eviware.soapui.support.action.support.AbstractSoapUIAction;

/**
* Clones an Interface to another project
*
* @author Ole.Matzura
*/

public class CloneInterfaceAction extends AbstractSoapUIAction<WsdlInterface> {
    public CloneInterfaceAction() {
        super("Clone Interface", "Clones this Interface to another project");
    }

    public void perform(WsdlInterface iface, Object param) {
        WorkspaceImpl workspace = iface.getProject().getWorkspace();
        String[] names = ModelSupport.getNames(workspace.getOpenProjectList(), new String[]{"<Create New>"});

        List<String> asList = new ArrayList<String>(Arrays.asList(names));
        asList.remove(iface.getProject().getName());

        String targetProjectName = UISupport.prompt("Select target Project for cloned Interface", "Clone Interface",
                asList);
        if (targetProjectName == null) {
            return;
        }

        WsdlProject targetProject = (WsdlProject) workspace.getProjectByName(targetProjectName);
        if (targetProject == null) {
            targetProjectName = UISupport.prompt("Enter name for new Project", "Clone TestSuite", "");
            if (targetProjectName == null) {
                return;
            }

            try {
                targetProject = workspace.createProject(targetProjectName, null);
            } catch (SoapUIException e) {
                UISupport.showErrorMessage(e);
            }

            if (targetProject == null) {
                return;
            }
        }

        WsdlInterface targetIface = (WsdlInterface) targetProject.getInterfaceByTechnicalId(iface.getTechnicalId());
        if (targetIface != null) {
            UISupport.showErrorMessage("Target Project already contains Interface for binding");
        } else {
            boolean importEndpoints = UISupport.confirm("Import endpoint defaults also?", getName());
            UISupport.select(targetProject.importInterface(iface, importEndpoints, true));
        }
    }
}
TOP

Related Classes of com.eviware.soapui.impl.wsdl.actions.iface.CloneInterfaceAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.