- NAME
- SYNOPSIS
- DESCRIPTION
- METHODS
- INHERITED METHODS
- SEE ALSO
- COPYRIGHT AND LICENSE

# NAME

Pegasus::DAX::Transformation - aggregates multiple executables and data files.

# SYNOPSIS

        use Pegasus::DAX::Transformation;
        use Pegasus::DAX::Filename;

        my $a = Pegasus::DAX::Transformation->new( undef, 'pre', '1.0' );
        my $b = Pegasus::DAX::Profile->new( namespace => 'foo'
                                          , name => 'bar'
                                          , version => '3.1416' );

        $a->uses( $filename_instance );
        $b->uses( Pegasus::DAX::Filename->new( ... ) );

# DESCRIPTION

This class aggregates multiple logical data files and transformations under a single handle that acts like a transformation itself.

# METHODS

`new()`
new( $namespace, $name, $version )
new( a => b, c => d, ... )
new( { a => b, c => d, ... } )

  The default constructor will create an empty instance whose scalar attributes can be adjusted using the getters and setters provided by the `AUTOLOAD` inherited method.

  When invoked with exactly 3 arguments, the first argument is the logical transformation namespace or undef, the second argument the required and defined transformation name, and the third argument the optional version string.

  Other means of construction is to use named lists.

namespace

  Setter and getter for the optional transformation namespace identifier.

name

  Setter and getter for required transformation name.

version

  Setter and getter for the optional transformation version string.

key

  creates a binary string that functions as key to identify this object when stashed into a hash. The key comprises namespace, name and version attribute values.

addUses

  Alias method for `uses` method.

uses( $tutype_instance )

  This method deeply copies the passed Pegasus::DAX::TUType instance.

uses( $filename_instance )

  This method constructs an internal Pegasus::DAX::TUType instance by copying the namespace, name, version and executable attributes from the Pegasus::DAX::Filename instance passed as argument.

uses( $file_instance )

  This method constructs an internal Pegasus::DAX::TUType instance by copying the name attributes from the Pegasus::DAX::Filename instance passed as argument, and sets its executable attribute to `false`. You will have to add a proper Pegasus::DAX::TUType instance to overwrite these defaults.

uses( $executable_instance )

  This method constructs an internal Pegasus::DAX::TUType instance by copying the namespace, name, and version attributes from the Pegasus::DAX::Executable instance passed as argument, and sets the executable attribute to `true`. You will have to add a proper Pegasus::DAX::TUType instance to overwrite these defaults.

toXML( $handle, $indent, $xmlns )

  The purpose of the `toXML` function is to recursively generate XML from the internal data structures. The first argument is a file handle open for writing. This is where the XML will be generated. The second argument is a string with the amount of white-space that should be used to indent elements for pretty printing. The third argument may not be defined. If defined, all element tags will be prefixed with this name space.

# INHERITED METHODS

Please refer to Pegasus::DAX::InvokeMixin for inherited methods.

addInvoke( $when, $cmd )
invoke( $when, $cmd )
notify( $when, $cmd )

# SEE ALSO

Pegasus::DAX::Base

  Base class.

Pegasus::DAX::InvokeMixin

  Base class.

Pegasus::DAX::ADAG

  Class that aggregates the Pegasus::DAX::Transformation class.

Pegasus::DAX::Filename
Pegasus::DAX::File
Pegasus::DAX::Executable

  Permissible ways to specify a file that is being used.

# COPYRIGHT AND LICENSE

Copyright 2007-2011 University Of Southern California

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.