gr.uoa.di.madgik.execution.plan.element
Class FileTransferPlanElement

java.lang.Object
  extended by gr.uoa.di.madgik.execution.plan.element.PlanElementBase
      extended by gr.uoa.di.madgik.execution.plan.element.FileTransferPlanElement
All Implemented Interfaces:
IPlanElement, Observer

public class FileTransferPlanElement
extends PlanElementBase

This class can be used to mediate at the execution level the staging of files to and from the StorageSystem. The transfer can have a direction of either FileTransferPlanElement.TransferDirection.Store or FileTransferPlanElement.TransferDirection.Retrieve. In case the direction is FileTransferPlanElement.TransferDirection.Store, the Input parameter is expected to have a value of the file path that is to be stored in the StorageSystem and is located in the same hosting machine as the one execution the element. After the operation is completed, the Output parameter will have as value the identifier assigned to the stored file by the StorageSystem. In case the direction is FileTransferPlanElement.TransferDirection.Retrieve, the Input parameter is expected to have as value the identifier of the document that is stored in the StorageSystem and after the execution, the Output will have the local filename where the document is stored. In case of the Direction has a value of FileTransferPlanElement.TransferDirection.Retrieve, the MoveTo parameter can also be set that can dictate a new filename to rename the retrieved file to. In same case the permission attributes can also be set. The IsExecutable flag can be used to make the file executable, or the more flexible Permissions field can be used to set the full permissions of the file. For these permissions the common four digit UNIX format is used.

Author:
gpapanikos

Nested Class Summary
static class FileTransferPlanElement.AccessInfo
           
static class FileTransferPlanElement.StoreMode
           
static class FileTransferPlanElement.TransferDirection
          The transfer direction
 
Nested classes/interfaces inherited from class gr.uoa.di.madgik.execution.plan.element.PlanElementBase
PlanElementBase.ClockType
 
Nested classes/interfaces inherited from interface gr.uoa.di.madgik.execution.plan.element.IPlanElement
IPlanElement.PlanElementType
 
Field Summary
 FileTransferPlanElement.AccessInfo accessInfo
           
 FileTransferPlanElement.TransferDirection Direction
          The Direction.
 IInputParameter Input
          This parameter holds the input value of the FileTransferPlanElement operation.
 boolean IsExecutable
          Flag indicating that the file transfered is executable and should have its permissions set accordingly.
 IInputParameter MoveTo
          After a file has been retrieved from the StorageSystem, it is stored in a temporary location.
 IOutputParameter Output
          After the file transfer operation this parameter will contain the respective StorageSystem return value.
 FileTransferPlanElement.StoreMode OutputStoreMode
           
 String Permissions
          The Permissions to set to the file transfered.
 String StoreUrlLocation
           
 
Constructor Summary
FileTransferPlanElement()
           
 
Method Summary
 void ExecuteExtender(ExecutionHandle Handle)
          Execute extender.
 void FromXML(Element XML)
          Populate the element from its xml serialization as returned by IPlanElement.ToXML()
 void FromXML(String XML)
          Populate the element from its xml serialization as returned by IPlanElement.ToXML()
 List<ContingencyTrigger> GetContingencyTriggers()
          Gets the contingency triggers.
 org.slf4j.Logger GetExtenderLogger()
          Gets the extender logger.
 String GetID()
          Gets the id.
 Set<String> GetModifiedVariableNames()
          Gets the modified variable names of the element and of the elements contained.
 String GetName()
          Gets the name.
 Set<String> GetNeededVariableNames()
          Gets the needed variable names of the element and of the elements contained.
 IPlanElement.PlanElementType GetPlanElementType()
          Gets the plan element type.
 IPlanElement Locate(String ID)
          Locate the plan element with the provided id.
 Set<IPlanElement> LocateActionElements()
          Retrieves the Action elements under this elements
static void main(String[] args)
           
 void SetContingencyResourcePick(ExecutionHandle Handle, String Pick)
          Sets the picked resource in case the IContingencyReaction.ReactionType#Pick reaction is supported
 void SetName(String Name)
          Sets the name.
 IContingencyReaction.ReactionType[] SupportedContingencyTriggers()
          Retrieves the supported contingency triggers.
 boolean SupportsContingencyTriggers()
          Checks if the element supports contingency triggers.
 String ToXML()
          Serialize to xml the element and all its contained elements
 void Validate()
          Validate the element and any sub element it contains
 void ValidatePreExecution(ExecutionHandle Handle)
          Validate the element and any sub element it contains before it is executed
 
Methods inherited from class gr.uoa.di.madgik.execution.plan.element.PlanElementBase
CheckStatus, Execute, ExecuteWithStateAwareness, GetPerformanceEvent, RegisterToRunningActionElementsRestriction, ResetClocks, StartClock, StopClock, UnregisterToRunningActionElementsRestriction, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

Input

public IInputParameter Input
This parameter holds the input value of the FileTransferPlanElement operation. If the Direction field has a value of FileTransferPlanElement.TransferDirection.Retrieve, this parameter is expected to have the StorageSystem identifier of the document to retrieve. in case the Direction field has a value of FileTransferPlanElement.TransferDirection.Store, this parameter is expected to have the path of the file to store to the StorageSystem


Output

public IOutputParameter Output
After the file transfer operation this parameter will contain the respective StorageSystem return value. in case the Direction field has a value of FileTransferPlanElement.TransferDirection.Retrieve, this parameter will be set to the name of the file that is retrieved by the StorageSystem. If the MoveTo parameter is set, the filename that is retrieved by this parameter is stored in Output. If the direction is set to FileTransferPlanElement.TransferDirection.Store, the StorageSystem identifier assigned to the stored file is set to Output


Direction

public FileTransferPlanElement.TransferDirection Direction
The Direction.


MoveTo

public IInputParameter MoveTo
After a file has been retrieved from the StorageSystem, it is stored in a temporary location. This parameter can be set to retrieve a filename that the temporary file should be renamed to. This value is only considered in case the Direction field has a value of FileTransferPlanElement.TransferDirection.Retrieve


Permissions

public String Permissions
The Permissions to set to the file transfered. The value follows the UNIX pattern of the 4 digits where permissions for owner, group and others are set. This value is only considered in case the Direction field has a value of FileTransferPlanElement.TransferDirection.Retrieve


IsExecutable

public boolean IsExecutable
Flag indicating that the file transfered is executable and should have its permissions set accordingly. This value is only considered in case the Direction field has a value of FileTransferPlanElement.TransferDirection.Retrieve


OutputStoreMode

public FileTransferPlanElement.StoreMode OutputStoreMode

StoreUrlLocation

public String StoreUrlLocation

accessInfo

public FileTransferPlanElement.AccessInfo accessInfo
Constructor Detail

FileTransferPlanElement

public FileTransferPlanElement()
Method Detail

FromXML

public void FromXML(String XML)
             throws ExecutionSerializationException
Description copied from interface: IPlanElement
Populate the element from its xml serialization as returned by IPlanElement.ToXML()

Parameters:
XML - the xML serialization
Throws:
ExecutionSerializationException - A serialization error occurred

FromXML

public void FromXML(Element XML)
             throws ExecutionSerializationException
Description copied from interface: IPlanElement
Populate the element from its xml serialization as returned by IPlanElement.ToXML()

Parameters:
XML - the xML serialization
Throws:
ExecutionSerializationException - A serialization error occurred

GetID

public String GetID()
Description copied from interface: IPlanElement
Gets the id.

Returns:
the id of the element

GetName

public String GetName()
Description copied from interface: IPlanElement
Gets the name.

Returns:
the name

GetPlanElementType

public IPlanElement.PlanElementType GetPlanElementType()
Description copied from interface: IPlanElement
Gets the plan element type.

Returns:
the plan element type

Locate

public IPlanElement Locate(String ID)
Description copied from interface: IPlanElement
Locate the plan element with the provided id. If this is the element requested return this instance. Otherwise forward the request to any sub elements contained. If the element does not belong to the hierarchy under this element, return null

Parameters:
ID - the iD
Returns:
the plan element with the provided id. or null if not found

LocateActionElements

public Set<IPlanElement> LocateActionElements()
Description copied from interface: IPlanElement
Retrieves the Action elements under this elements

Returns:
The action ELements

SetName

public void SetName(String Name)
Description copied from interface: IPlanElement
Sets the name.

Parameters:
Name - the name

ToXML

public String ToXML()
             throws ExecutionSerializationException
Description copied from interface: IPlanElement
Serialize to xml the element and all its contained elements

Returns:
the serialization
Throws:
ExecutionSerializationException - A serialization error occurred

Validate

public void Validate()
              throws ExecutionValidationException
Description copied from interface: IPlanElement
Validate the element and any sub element it contains

Throws:
ExecutionValidationException - A validation error occurred

SupportedContingencyTriggers

public IContingencyReaction.ReactionType[] SupportedContingencyTriggers()
Description copied from interface: IPlanElement
Retrieves the supported contingency triggers.

Returns:
the supported contingency triggers types.

SupportsContingencyTriggers

public boolean SupportsContingencyTriggers()
Description copied from interface: IPlanElement
Checks if the element supports contingency triggers.

Returns:
true, if it does

GetContingencyTriggers

public List<ContingencyTrigger> GetContingencyTriggers()
Description copied from interface: IPlanElement
Gets the contingency triggers.

Returns:
the list of contingency trigger that are applicable to the element.

SetContingencyResourcePick

public void SetContingencyResourcePick(ExecutionHandle Handle,
                                       String Pick)
                                throws ExecutionRunTimeException
Description copied from interface: IPlanElement
Sets the picked resource in case the IContingencyReaction.ReactionType#Pick reaction is supported

Parameters:
Handle - the execution handle handle
Pick - the picked resource
Throws:
ExecutionRunTimeException - A runtime error occurred

GetModifiedVariableNames

public Set<String> GetModifiedVariableNames()
Description copied from interface: IPlanElement
Gets the modified variable names of the element and of the elements contained. These include the variables that are modified by the element and its hierarchy when executed.

Returns:
the set of the variable names that are modified by this element and its contained elements

GetNeededVariableNames

public Set<String> GetNeededVariableNames()
Description copied from interface: IPlanElement
Gets the needed variable names of the element and of the elements contained. These include the variables that are needed to be present for the element and its hierarchy to be executed.

Returns:
the set of the variable names that are needed by this element and its contained elements

GetExtenderLogger

public org.slf4j.Logger GetExtenderLogger()
Description copied from class: PlanElementBase
Gets the extender logger.

Specified by:
GetExtenderLogger in class PlanElementBase
Returns:
the logger

ExecuteExtender

public void ExecuteExtender(ExecutionHandle Handle)
                     throws ExecutionRunTimeException,
                            ExecutionInternalErrorException,
                            ExecutionCancelException,
                            ExecutionBreakException
Description copied from class: PlanElementBase
Execute extender. This class is implemented by extenders of the class

Specified by:
ExecuteExtender in class PlanElementBase
Parameters:
Handle - the execution handle
Throws:
ExecutionRunTimeException - A runtime error occurred
ExecutionInternalErrorException - An internal error occurred
ExecutionCancelException - The execution was canceled
ExecutionBreakException - The execution was terminated

ValidatePreExecution

public void ValidatePreExecution(ExecutionHandle Handle)
                          throws ExecutionValidationException
Description copied from interface: IPlanElement
Validate the element and any sub element it contains before it is executed

Parameters:
Handle - the execution handle
Throws:
ExecutionValidationException - A validation error occurred

main

public static void main(String[] args)
                 throws Exception
Throws:
Exception


Copyright © 2013. All Rights Reserved.