/** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF 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.apache.airavata.registry.core.workflow.catalog.utils; import org.apache.airavata.model.WorkflowModel; import org.apache.airavata.model.application.io.DataType; import org.apache.airavata.model.application.io.InputDataObjectType; import org.apache.airavata.registry.core.workflow.catalog.resources.WorkflowCatAbstractResource; import org.apache.airavata.registry.core.workflow.catalog.resources.WorkflowCatalogResource; import org.apache.airavata.registry.core.workflow.catalog.resources.WorkflowInputResource; import org.apache.airavata.registry.core.workflow.catalog.resources.WorkflowResource; import org.apache.airavata.registry.cpi.WorkflowCatalogException; import java.util.ArrayList; import java.util.List; public class WorkflowCatalogThriftConversion { public static InputDataObjectType getWorkflowInput (WorkflowInputResource resource){ InputDataObjectType input = new InputDataObjectType(); input.setName(resource.getInputKey()); input.setApplicationArgument(resource.getAppArgument()); input.setInputOrder(resource.getInputOrder()); input.setType(DataType.valueOf(resource.getDataType())); input.setMetaData(resource.getMetadata()); input.setUserFriendlyDescription(resource.getUserFriendlyDesc()); input.setIsRequired(resource.getRequired()); input.setRequiredToAddedToCommandLine(resource.getRequiredToCMD()); input.setDataStaged(resource.isDataStaged()); return input; } public static List<InputDataObjectType> getWFInputs(List<WorkflowCatalogResource> resources){ List<InputDataObjectType> inputResources = new ArrayList<InputDataObjectType>(); if (resources != null && !resources.isEmpty()){ for (WorkflowCatalogResource resource : resources){ inputResources.add(getWorkflowInput((WorkflowInputResource) resource)); } } return inputResources; } public static WorkflowModel getWorkflow (WorkflowResource resource) throws WorkflowCatalogException { WorkflowModel workflow = new WorkflowModel(); workflow.setTemplateId(resource.getWfTemplateId()); workflow.setGraph(resource.getGraph()); workflow.setName(resource.getWfName()); if (resource.getImage() != null){ workflow.setImage(resource.getImage().getBytes()); } WorkflowInputResource inputResource = new WorkflowInputResource(); List<WorkflowCatalogResource> resources = inputResource.get(WorkflowCatAbstractResource.WorkflowInputConstants.WF_TEMPLATE_ID, resource.getWfTemplateId()); workflow.setWorkflowInputs(getWFInputs(resources)); return workflow; } }