Package eu.scape_project.planning.services.myexperiment

Source Code of eu.scape_project.planning.services.myexperiment.MyExperimentSearch

/*******************************************************************************
* Copyright 2006 - 2014 Vienna University of Technology,
* Department of Software Technology and Interactive Systems, IFS
*
* 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 eu.scape_project.planning.services.myexperiment;

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

import eu.scape_project.planning.services.IServiceInfo;
import eu.scape_project.planning.services.PlanningServiceException;
import eu.scape_project.planning.services.myexperiment.MyExperimentRESTClient.ComponentQuery;
import eu.scape_project.planning.services.myexperiment.domain.ComponentConstants;
import eu.scape_project.planning.services.myexperiment.domain.WorkflowInfo;
import eu.scape_project.planning.services.pa.taverna.MyExperimentActionInfo;

/**
* Search for myExperiment.
*/
public class MyExperimentSearch {

    /**
     * Rest client for myExperiment.
     */
    private MyExperimentRESTClient myExperimentRESTClient = new MyExperimentRESTClient();

    /*
     * Search parameters
     */
    private String profile;

    private String sourceMimetype;

    private String targetMimetype;

    private String dependencyLabel;

    private String environment;

    private String environmentType;

    private String measure;

    /**
     * Searches for migration components using the set search parameters.
     *
     * @return a list of service infos that match the search parameters
     */
    public List<IServiceInfo> searchMigrationAction() throws PlanningServiceException {
        List<IServiceInfo> services = new ArrayList<IServiceInfo>();

        // Create query
        ComponentQuery query = myExperimentRESTClient.createComponentQuery();
        query.addProfile(profile).addMigrationPath(sourceMimetype).setMigrationPathTargetPattern(targetMimetype)
            .addInputPort(ComponentConstants.VALUE_SOURCE_OBJECT).addOutputPort(ComponentConstants.VALUE_TARGET_OBJECT)
            .addInstallationEnvironment(environment).addInstallationEnvironmentType(environmentType);

        query.setDependencyLabelPattern(dependencyLabel);
        query.finishQuery();

        List<WorkflowInfo> workflows = myExperimentRESTClient.searchComponents(query);
        for (WorkflowInfo workflow : workflows) {
            MyExperimentActionInfo service = new MyExperimentActionInfo();

            service.setShortname(workflow.getName());
            service.setDescriptor(workflow.getDescriptor());
            service.setInfo(workflow.getDescription());
            service.setUrl(workflow.getContentUri());
            service.setContentType(workflow.getContentType());

            services.add(service);
        }

        return services;
    }

    /**
     * Searches for object QA components using the set search parameters.
     *
     * @return a list of service infos that match the search parameters
     * @throws PlanningServiceException
     */
    public List<IServiceInfo> searchObjectQa() throws PlanningServiceException {
        List<IServiceInfo> services = new ArrayList<IServiceInfo>();

        ComponentQuery query = myExperimentRESTClient.createComponentQuery();
        query.addProfile(profile);

        query.addHandlesMimetype(sourceMimetype, targetMimetype)
            .addHandlesMimetypeWildcard(sourceMimetype, targetMimetype)
            .addHandlesMimetypes(sourceMimetype, targetMimetype)
            .addHandlesMimetypesWildcard(sourceMimetype, targetMimetype);

        if (sourceMimetype != null && !sourceMimetype.equals(targetMimetype)) {
            query.addHandlesMimetypes(targetMimetype, sourceMimetype).addHandlesMimetypesWildcard(targetMimetype,
                sourceMimetype);
        }
        query.addInputPort(ComponentConstants.VALUE_LEFT_OBJECT).addInputPort(ComponentConstants.VALUE_RIGHT_OBJECT);
        if (measure != null) {
            query.addMeasureOutputPort(measure);
        }

        query.addInstallationEnvironment(environment).addInstallationEnvironmentType(environmentType)
            .setDependencyLabelPattern(dependencyLabel).finishQuery();

        List<WorkflowInfo> workflows = myExperimentRESTClient.searchComponents(query);
        for (WorkflowInfo workflow : workflows) {
            MyExperimentActionInfo service = new MyExperimentActionInfo();

            service.setShortname(workflow.getName());
            service.setDescriptor(workflow.getDescriptor());
            service.setInfo(workflow.getDescription());
            service.setUrl(workflow.getContentUri());
            service.setContentType(workflow.getContentType());

            services.add(service);
        }

        return services;
    }

    /**
     * Searches for characterisation components using the set search parameters.
     *
     * @return a list of service infos that match the search parameters
     * @throws PlanningServiceException
     */
    public List<IServiceInfo> searchCc() throws PlanningServiceException {
        List<IServiceInfo> services = new ArrayList<IServiceInfo>();

        ComponentQuery query = myExperimentRESTClient.createComponentQuery();
        query.addProfile(profile).addHandlesMimetype(targetMimetype).addHandlesMimetypeWildcard(targetMimetype)
            .addInputPort(ComponentConstants.VALUE_SOURCE_OBJECT);

        if (measure != null) {
            query.addMeasureOutputPort(measure);
        }

        query.addInstallationEnvironment(environment).addInstallationEnvironmentType(environmentType)
            .setDependencyLabelPattern(dependencyLabel).finishQuery();

        List<WorkflowInfo> workflows = myExperimentRESTClient.searchComponents(query);
        for (WorkflowInfo workflow : workflows) {
            MyExperimentActionInfo service = new MyExperimentActionInfo();

            service.setShortname(workflow.getName());
            service.setDescriptor(workflow.getDescriptor());
            service.setInfo(workflow.getDescription());
            service.setUrl(workflow.getContentUri());
            service.setContentType(workflow.getContentType());

            services.add(service);
        }

        return services;
    }

    // ---------- getter/setter ----------
    public String getProfile() {
        return profile;
    }

    public void setProfile(String profile) {
        this.profile = profile;
    }

    public String getSourceMimetype() {
        return sourceMimetype;
    }

    public void setSourceMimetype(String sourceMimetype) {
        this.sourceMimetype = sourceMimetype;
    }

    public String getTargetMimetype() {
        return targetMimetype;
    }

    public void setTargetMimetype(String targetMimetype) {
        this.targetMimetype = targetMimetype;
    }

    public String getDependencyLabel() {
        return dependencyLabel;
    }

    public void setDependencyLabel(String dependencyLabel) {
        this.dependencyLabel = dependencyLabel;
    }

    public String getEnvironment() {
        return environment;
    }

    public void setEnvironment(String environment) {
        this.environment = environment;
    }

    public String getEnvironmentType() {
        return environmentType;
    }

    public void setEnvironmentType(String environmentType) {
        this.environmentType = environmentType;
    }

    public String getMeasure() {
        return measure;
    }

    public void setMeasure(String measure) {
        this.measure = measure;
    }
}
TOP

Related Classes of eu.scape_project.planning.services.myexperiment.MyExperimentSearch

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.