/*
 * 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.oodt.cas.workflow.cli.action;

//OODT imports
import org.apache.oodt.cas.cli.exception.CmdLineActionException;
import org.apache.oodt.cas.workflow.structs.WorkflowTask;

/**
 * A {@link CmdLineAction} which retrieves WorkflowTask information for
 * WorkflowTask with given task ID.
 *
 * @author bfoster (Brian Foster)
 */
public class GetTaskByIdCliAction extends WorkflowCliAction {

   private String taskId;

   @Override
   public void execute(ActionMessagePrinter printer)
         throws CmdLineActionException {
      try {
         WorkflowTask task = getClient().getTaskById(taskId);
         printer.println("Task: [id=" + task.getTaskId() + ", name="
               + task.getTaskName() + ", order=" + task.getOrder() + ", class="
               + task.getClass().getName() + ", numConditions="
               + task.getConditions().size() + ", configuration="
               + task.getTaskConfig().getProperties() + "]");
      } catch (Exception e) {
         throw new CmdLineActionException(
               "Failed to get task by id for taskId '" + taskId + "' : "
                     + e.getMessage(), e);
      }
   }

   public void setTaskId(String taskId) {
      this.taskId = taskId;
   }
}

@@ -845,16 +845,44 @@
 ction;%0A%0A
+import java.util.Iterator;%0A%0A
 //OODT i
@@ -1436,16 +1436,294 @@
 askId);%0A
+         %0A         String requiredMetFields = %22%22;%0A         for (Iterator i = task.getRequiredMetFields().iterator(); i.hasNext();) %7B%0A        %09 if (requiredMetFields.length()%3E0) requiredMetFields += %22, %22;%0A             requiredMetFields += (String) i.next();%0A         %7D%0A         %0A
         
@@ -1775,19 +1775,8 @@
 d() 
-+ %22, name=%22
 %0A   
@@ -1780,32 +1780,44 @@
                +
+ %22, name=%22 +
  task.getTaskNam
@@ -1816,24 +1816,40 @@
 tTaskName() 
+%0A               
 + %22, order=%22
@@ -1871,21 +1871,11 @@
 r() 
-+ %22, class=%22%0A
+%0A  
     
@@ -1875,33 +1875,44 @@
 %0A               
- 
++ %22, class=%22
  + task.getClass
@@ -1920,24 +1920,40 @@
 ).getName() 
+%0A               
 + %22, numCond
@@ -1960,31 +1960,16 @@
 itions=%22
-%0A              
  + task.
@@ -1991,16 +1991,102 @@
 .size() 
+%0A               + %22, requiredMetadataFields=%5B%22 + requiredMetFields+%22%5D%22%0A               
 + %22, con
@@ -2097,32 +2097,16 @@
 ration=%22
-%0A               
 + task.g
@@ -2144,16 +2144,26 @@
 + %22%5D%22);%0A
+         %0A
       %7D 

Printing out the task required metadata fields (OODT-861)