Project pipeline.tpr

Mon Jul 26 18:08:33 GMT+04:30 1999

Diagrams List

Class diagram pipeline

Class diagram pil

UseCase diagram UseCase1

UseCase diagram UseCase11

UseCase diagram UseCase2

Class diagram pil.cdb

Class diagram pil.pdo

Interaction diagram Reduction

Interaction diagram initiation

Class diagram pil.prs

Interaction diagram Execution

Interaction diagram Initiation

Interaction diagram Product

Interaction diagram Reduction

Class diagram pil.rbs

Interaction diagram Execute

Interaction diagram Initiation

Class diagram pil.rsw

Interaction diagram Initiation

Interaction diagram execute

Class diagram pil.util

Diagrams Descriptions


Class diagram pipeline

Default.Default

Packages


Class diagram pil.rbs

pil.rbs.Default.Default

Classes

RBScheduler

Declaration

public class pil.rbs.RBScheduler

Documentation
RBScheduler performs the high level administration of Data
Reduction Systems (DRS) available to reduce Reduction Blocks. It
finds the DRS which can reduce a RB and submits the RB to it
for execution. The DRS's are accessed through wrappers which
provide a homogeneous interface to any DRS.

Operations

public void execute(pil.util.RedBlock redBlock)

Documentation
Executes a Reduction Block by finding the appropriate system
and requesting it to actually perform the reductions.

public void removeWrapper(String name)

Documentation
Removes a DRS wrapper from the current list.

public int addWrapper(String system, String[] resources)

Documentation
Adds a DRS wrapper to the active systems.

public RBScheduler(File config)

Documentation
Class constructor specifying the configuration file.

public RBScheduler()

Documentation
Default class constructor.

Attributes

private pil.rsw.DRSWrapper lnkDRSWrapperSet

supplierCardinality
0..*

Association links

RecipeImpl

Declaration

public class pil.rbs.RecipeImpl

Documentation
RecipeImpl defines the order of preference for executing a recipe by
specific Data Reduction Systems.

Operations

public String[] getPreference(String strategy, String recipe)

Documentation
Gets a list of systems in order of preference which can
execute the recipe of a given strategy.
return
Array of strings with names of Data Reduction Systems
in order or preference.

public RecipeImpl(File recImpl)

Documentation
Class constructor specifying the configuration file.

Attributes

private Hashtable strategyImpl

Interaction diagram Execute

pil.rbs.Execute.Execute

Objects

aClient

persistence
transitory
name
aClient
positions
25,35,96,350,1

rbs ClassOfInstance RBScheduler

persistence
transitory
name
rbs
positions
130,35,216,350,1

recImpl ClassOfInstance RecipeImpl

persistence
transitory
name
recImpl
positions
569,35,206,350,1

drsWrapperSet ClassOfInstance DRSWrapperSet

persistence
transitory
name
drsWrapperSet
positions
784,35,236,350,1

drsWrapper ClassOfInstance DRSWrapper

persistence
transitory
name
drsWrapper
positions
1035,35,206,350,1

rb ClassOfInstance RedBlock

persistence
transitory
name
rb
positions
360,35,196,350,1


Interaction diagram Initiation

pil.rbs.Initiation.Initiation

Objects

aClient

persistence
transitory
name
aClient
positions
18,35,96,587,1

rbs ClassOfInstance RBScheduler

name
rbs
created
persistence
persistent
positions
132,35,216,587,1

recImpl ClassOfInstance RecipeImpl

persistence
transitory
name
recImpl
created
positions
363,35,206,587,1

drsWrapper ClassOfInstance DRSWrapper

persistence
transitory
name
drsWrapper
multipleInstance
created
destroyed
positions
830,35,206,587,1

drsWrapperSet ClassOfInstance DRSWrapperSet

persistence
transitory
created
positions
582,35,236,587,1
name
drsWrapperSet


Class diagram pil.cdb

pil.cdb.Default.Default

Classes

CalibDB

Declaration

public class pil.cdb.CalibDB

Documentation
CalibDb is a proxy class which provides access to calibration
data used by the pipeline. It either uses a Database server or
a simple directory structure to find the data. It returns strings
with URI addresses of the calibration files requested.

Operations

public void disconnect()

Documentation
Disconnects from the server. After this call, data cannot be
obtained and all request will return an empty string array.

public boolean connect(String database)

Documentation
Connects to a database server or directory.
param
database The database server or directory given as a
string with the URI address.
return
The status of the connection - true if established

public String[] getDataSince(String instrument, String type, String mode, Date date, Date since)

Documentation
Gets all calibration data fulfilling the criteria with a creation
data later than a specified time.
param
instrument The instrument for the calibration data
param
type The type of data such as CALIB or PHYS
param
mode The data mode such as IMAG or LSS
param
date The date for which the calibration should
should be found
param
since Calibration data only after this date are
retrieved
return
Array URI addresses as strings

public String[] getData(String instrument, String type, String mode, Date date)

Documentation
Gets all calibration data which fulfill the specifications
param
instrument The instrument for the calibration data
param
type The type of data such as CALIB or PHYS
param
mode The data mode such as IMAG or LSS
param
date The date for which the calibration should
should be found
return
Array with URI addresses

public CalibDB(String database)

Documentation
Class constructor specifying the database server or directory
containing the calibration files.
param
database The URI address.

public CalibDB()

Documentation
Default class constructor

Attributes

private Object dbServer

Class diagram pil.util

pil.util.Default.Default

Classes

Criterion

Declaration

public class pil.util.Criterion

Documentation
Criterion defines a logical expression between internal
pipeline frame variable. It is used for classification and
association of frames.

Operations

public boolean evaluate(Header keys, Header ref)

Documentation
Computes the boolean value of the expression using a set of keys
and keys from a reference frame.
param
keys The header for which the expression is computed
param
ref The header for reference frame

public boolean evaluate(Header keys)

Documentation
Computes the boolean value of the expression using a set of keys.
param
keys The frame header for which the expression is computed

public void setExpression(String expr)

Documentation
Sets the boolean expression of the criterion.

public void setName(String name)

Documentation
Sets name of criterion.

public String getName()

Documentation
Gets name of criterion.

public Criterion(String name, String expr)

Documentation
Class contructor specifying name and boolean expression.

public Criterion()

Documentation
Default class constructor.

FrameTree

Declaration

public class pil.util.FrameTree extends DefaultMutableTreeModel

Documentation
FrameTree keeps a collection of Frames using a hierarchical
structure defined by the strategy levels.

Operations

public Frame[] getFrames(String[] level, String category)

Documentation
Gets set of frames at hierarchical level with given category.
param
level The hierarchical level for frames
param
category The category of frames

Aggregation links

Frame

Declaration

public class pil.util.Frame implements TreeNode

Documentation
Frame is the class which gives a strategy specific view of
a data frame, typically a FITS file. It contains information
of the strategy, category, mode and domain associated to
frame. In addition, a link to the original data file is
kept. A Frame contains a set of headers corresponding to
FITS extension. Each of the headers has a set of keywords
associated to it. The keywords are translated from the
original FITS keywords using a strategy specific map.

Operations

public void setStrategy(String strategy)

Documentation
Sets strategy which created frame
tgSet

public String getStrategy()

Documentation
Gets strategy for which frame was created
tgGet

public void setFileRef(String fileRef)

Documentation
Sets URI address of original data file
tgSet

public String getFileRef()

Documentation
Gets URI address of original data file
tgGet

public void setCategory(String category)

Documentation
Sets frame category
tgSet

public String getCategory()

Documentation
Gets frame category of frame as defined by strategy
tgGet

public void setDomain(String domain)

Documentation
Sets data domain for frame
tgSet

public String getDomain()

Documentation
Gets data domain such as visual or infra-red
tgGet

public void setMode(String mode)

Documentation
Sets operational mode of frame
tgSet

public String getMode()

Documentation
Gets operational mode such as on-line or service
tgGet

public Header getHeader(int no)

Documentation
Gets header associated to frame
param
no The index of header

public Frame(Object fitsFile, KeyMap map)

Documentation
Class constructor specifying FITS file and keyword map.
param
fitsFile The data file in FITS format
param
map The map to translate FITS keywords to internal
variables

public Frame()

Documentation
Default Class constructor

Attributes

private String strategy
private String fileRef
private String category
private String domain
private String mode

Aggregation links

Keyword

Declaration

public class pil.util.Keyword implements IVariable

Documentation
Keyword defines a name/value pair. A unit may be associated to
the value which also has a type. Values consisting of an array of
values of the same type are supported.

Operations

public int getSize()

Documentation
Gets no. of single scalers in value for arrays.
For normal scaler values, one is returned.

public int getType()

Documentation
Gets data type of value field

public String getUnit()

Documentation
Gets unit for value of variable

public void setUnit(String unit)

Documentation
Sets unit of value field

public boolean isValid()

Documentation
Checks if variable has a valid value

public Object getValue()

Documentation
Gets value of variable

public void setValue(Object value)

Documentation
Sets value field of variable

public String getName()

Documentation
Gets name of variable

public void setName(String name)

Documentation
Sets name of variable

public Keyword(String name, Object value)

Documentation
Class constructor specifying name and value
param
name The name of the keyword
param
value The keyword value given as an object

public Keyword()

Documentation
Default Class constructor

Implementation links

Header

Declaration

public class pil.util.Header

Documentation
Header is a class containing Header information of FITS prime unit
or its extensions. It keeps a set of keywords translated from
the FITS keywords using a strategy specific keyword map.

Operations

public Enumeration getKeywords()

Documentation
Gets enumeration to list of keywords in header

public Keyword getKeyword(String name)

Documentation
Gets keyword through its name

public void removeKeyword(Keyword key)

Documentation
Removes given keyword from header.

public void addKeyword(Keyword key)

Documentation
Adds keyword to header.

public Header()

Documentation
Default Class constructor

Attributes

private Hashtable keywords

Aggregation links

RedBlock

Declaration

public class pil.util.RedBlock implements IAction

Documentation
RedBlock defines a pipeline Reduction Block which is a special
data reduction action. It carries information of the recipe
to be executed and its parameters. It also kepts the results
of the execution.

Operations

public void setCommand(String command)

Documentation
Sets name of recipe to execute.
tgSet

public void setPriority(int priority)

Documentation
Sets execution priority.
tgSet

public int getPriority()

Documentation
Gets execution priority.
tgGet

public int getStatus()

Documentation
Gets status of Reduction Block.
tgGet

public int getType()

Documentation
Gets type of action.
tgGet

public Date getDate()

Documentation
Gets date of creation of Reduction Block.
tgGet

public String getName()

Documentation
Gets unique name of reduction block.
tgGet

public String[] getResources()

Documentation
Gets resources required for execution.

public void getParameters(IVariable[] parms)

Documentation
Sets parameters associated to recipe.

public IVariable[] getParameters()

Documentation
Gets parameters associated to recipe.

public IVariable[] getResult()

Documentation
Gets results of execution.

public void setResult(IVariable[] result)

Documentation
Sets results obtained through execution.

public void setStatus(int status)

Documentation
Sets status of Reduction Block.

public RedBlock(String name, Recipe recipe)

Documentation
Class constructor giving name and recipe.

public RedBlock(String name)

Documentation
Class constructor specifying its name.

public RedBlock()

Documentation
Default class constructor.

Attributes

private String name
private int type
private int status
private int priority
private String command
private Date date

Association links

Implementation links

Recipe

Declaration

public class pil.util.Recipe

Documentation
Recipe defines a data reduction algorithm including its signature
and return values.

Operations

public String getDescription()

Documentation
Gets description of recipe.

public void setDescription(String desc)

Documentation
Sets description of recipe.

public String[] getResources()

Documentation
Gets resources required for the execution of recipe.

public void setResources(String[] resource)

Documentation
Sets resources required for the execution of recipe.

public IVariable[] getParameters()

Documentation
Gets list of general parameters needed for recipe.

public void setParameter(IVariable[] input)

Documentation
Sets list of general parameters needed for recipe.

public IVariable[] getDepend()

Documentation
Gets list of input parameters depending on input parameters.

public void setDepend(IVariable[] input)

Documentation
Sets list of input parameters depending on input parameters.

public IVariable[] getInput()

Documentation
Gets list of independent input parameters required by recipe.

public void setInput(IVariable[] input)

Documentation
Sets list of independent input parameters required by recipe.

public IVariable[] getResult()

Documentation
Gets list of result values which will be returned as result.

public void setResult(IVariable[] result)

Documentation
Sets list of result values which will be returned.

public String getName()

Documentation
Gets name of recipe

public void setName(String name)

Documentation
Sets name of recipe

public Recipe(String recipe)

Documentation
Class constructor specifying the persistent form of the recipe

public Recipe()

Documentation
Default class constructor

Attributes

private String description
private String[] resources
private String name

Association links

Parameter

Declaration

public class pil.util.Parameter implements IVariable

Documentation
Parameter defines a name/value pair. A unit may be
associated to the value which also has a type. Values
consisting of an array of values of the same type are supported.

Operations

public int getSize()

Documentation
Gets no. of single scalers in value for arrays.
For normal scaler values, one is returned.

public int getType()

Documentation
Gets data type of value field

public String getUnit()

Documentation
Gets unit for value of variable

public void setUnit(String unit)

Documentation
Sets unit of value field

public boolean isValid()

Documentation
Checks if variable has a valid value

public Object getValue()

Documentation
Gets value of variable

public void setValue(Object value)

Documentation
Sets value field of variable

public String getName()

Documentation
Gets name of variable

public void setName(String name)

Documentation
Sets name of variable

public Parameter(String name, Object value)

Documentation
Class constructor giving name and value

public Parameter()

Documentation
Default class constructor

Implementation links

KeyMap

Declaration

public class pil.util.KeyMap

Documentation
KeyMap defines translation from extranal FITS keywords to internal
pipeline variables

Operations

public Enumeration getKeyList(String name)

Documentation
Gets list of FITS keywords which may be mapped to the given
internal variable.
param
name The name of internal pipeline keyword

public KeyMap(File keymap)

Documentation
Class constructor using file with the map specifications

public KeyMap()

Documentation
Default Class constructor

Attributes

private Hashtable keyMap

Status

Declaration

public class pil.util.Status

Documentation
Status keeps inforamation of state associated to
execution of actions.

Operations

public void setStatus(int status)

Documentation
Sets execution status.
tgSet

public int getStatus()

Documentation
Gets execution status.
tgGet

public Status()

Documentation
Default class constructor

Attributes

private int status

Interfaces

IAction

Declaration

public abstract interface pil.util.IAction

Documentation
IAction is an interface defining a generic data reduction action
for the Pipeline system.

Operations

IVariable[] getResults()

Documentation
Gets results created by action

IVariable getParameter(String name)

Documentation
Gets value of named parameter

void setParameter(String name, IVariable var)

Documentation
Sets value of named parameter

String getCommand()

Documentation
Gets name of command or recipe to execute action.

void setCommand(String name)

Documentation
Sets name of command or recipe to execute action.

String[] getResourses()

Documentation
Gets resourses required to execute action.

int getPriority()

Documentation
Gets priority of action.

int getState()

Documentation
Gets current state of action.

int getType()

Documentation
Gets type ofaction.

String getScope()

Documentation
Gets scope of action.

Date getDate()

Documentation
Gets date/time when action was created.

String getName()

Documentation
Gets name of action. This name is unique within the scope.

IVariable

Declaration

public abstract interface pil.util.IVariable

Documentation
IVariable is an interface defining a generic data variable
for the Pipeline system.

Operations

int getSize()

Documentation
Gets no. of single scalers in value for arrays

int getType()

Documentation
Gets data type of value field

Object getUnit()

Documentation
Gets unit for value of variable

void setUnit(String unit)

Documentation
Sets unit of value field

boolean isValid()

Documentation
Checks if variable has a valid value

Object getValue()

Documentation
Gets value of variable

void setValue(Object value)

Documentation
Sets value field of variable

String getName()

Documentation
Gets name of variable

void setName(String name)

Documentation
Sets name of variable


Class diagram pil.prs

pil.prs.Default.Default

Classes

Strategy

Declaration

public class pil.prs.Strategy

Documentation
Strategy defines the reduction strategy to be followed for
the pipeline reduction of data frames. As part of this strategy
all data are classified in unique categories (using a CategorySet)
and grouped in to a hierarchical structure. A set of reduction
rules are specified to determine the action to be performed on a
set of data depending on their category, level, mode and domain.

Operations

protected Category classify(pil.util.Frame frame)

Documentation
Classifies frame according to strategy categories.
param
frame The frame to be classified
return
Category of frame

public pil.util.Frame[] getRecipeDepends(String recipe, pil.util.Frame[] input)

Documentation
Gets list of all calibration frame which can be used for a
recipe with a given set of input frames.
param
recipe The recipe name
param
input The frames to be used as input for recipe
return
Array of frames which can be used for calibration

public pil.util.Frame[] getRecipeInputs(String recipe)

Documentation
Gets list of all frames in the strategy frame collection which
can be used as input for a recipe.
param
recipe The recipe name
return
Array of frames which can be used as input

public String[] getRecipesByCategory(String category)

Documentation
Gets list of all recipes which can produce a specified category.
param
category The name of the category
return
Array of recipe identifiers

public String[] getCategories(String type)

Documentation
Gets list of all categories defined by strategy.
param
type The type of categories such as RAW, CALIB or PHYS
return
Array of category identifiers

public ActionScript getActionScript(pil.util.Frame[] coll)

Documentation
Gets actions to be performed to process a set of frames.
param
coll The set of frames to be processed
return
The actions which should be performed to reduce
the set of frames

public pil.util.Frame createFrame(Object fitsFile, String mode, String domain)

Documentation
Creates frame using strategy specific keyword map.
The frame is added to the strategy collection of frames.
param
fitsFile The FITS file object to be mapped
param
mode The operational mode of file
param
domain The observation domain of file
return
The frame mapped using strategy. If no
category can be found null is returned.

public Strategy(File config)

Documentation
Class constructor specifying its configuration file.

Attributes

private pil.util.FrameTree lnkFrameColl
private pil.cdb.CalibDB lnkCalibDB
private pil.util.KeyMap lnkKeyMap

supplierCardinality
1

Association links

Rule

Declaration

public class pil.prs.Rule

Documentation
Rule defines reduction actions required to pipeline process
a set of frames.

Operations

public ActionScript getActionScript(pil.util.Frame[] coll)

Documentation
Gets actions to be execution for a set of frames to reduce
them.
return
Action script which specifies reduction steps.

public Rule()

Documentation
Default class constructor.

Aggregation links

Category

Declaration

public class pil.prs.Category

Documentation
Category defines a category of frames within a reduction strategy.
A category has a unique name and a criterion defined as a boolean
expression of frame keywords which is true for frames belonging to
it. Further, it defined a primary key used for association of
calibration data and a list of required keywords. The structure
of the frame may also be specified.

Operations

public void setPrimaryKey(pil.util.IVariable[] primaryKey)

Documentation
Sets primary key for category.
tgSet

public pil.util.IVariable[] getPrimaryKey()

Documentation
Gets primary key used for association of calibration frames.
tgGet

public String getName()

Documentation
Gets name of category.
tgGet

public void setKeys(pil.util.IVariable[] keys)

Documentation
Sets keys which must be defined for frame belonging to
category.
tgSet

public boolean belongsTo(pil.util.Frame frame)

Documentation
Determines if a frame belongs to the category.
return
True if frame belongs to category.

public Category(String name, pil.util.Criterion criterion)

Documentation
Class constructor specifying its name and criterion.

Attributes

private pil.util.Criterion criterion
private pil.util.IVariable[] primaryKey
private String name
private pil.util.IVariable[] keys

CategorySet

Declaration

public class pil.prs.CategorySet

Documentation
CategorySet contains collection of Category objects for a
reduction strategy. It is used to classify frame into unique
categories within the strategy.

Operations

public Category getCategory(String name)

Documentation
Gets category by its name.

public Category classify(pil.util.Frame frame)

Documentation
Classifies frame into a category defined by strategy.
return
The category object for frame. If no category
was found null is returned.

public CategorySet(File categories)

Documentation
Class constructor specifying the configuration file.

Aggregation links

RuleSet

Declaration

public class pil.prs.RuleSet

Documentation
RuleSet is a collection of reduction rules for a strategy.
It is used to locate the reduction rule for a given level.

Operations

public Rule findRule(pil.util.Frame[] frames)

Documentation
Finds reduction rule associated to a set of frames.

public RuleSet(File rules)

Documentation
Class constructure specifying configuration file.

Aggregation links

ActionScript

Declaration

public class pil.prs.ActionScript

Documentation
ActionScript specifies set of reduction actions which must be
executed to perform pipeline processing of a set of frames.

Operations

private void optimize()

Documentation
Optimizes sequence of actions define by script.

private boolean associate(pil.util.Frame frame, pil.util.Frame ref)

Documentation
Associates calibration frames to input frames specified
for recipe.

public void execute()

Documentation
Executes actions specified by script. The script is
first optimized after which all actions are analyzed and
converted into specific Reduction Blocks. The Reduction
Blocks are then send to the Reduction Block Scheduler for
execution.

public ActionScript(String script)

Documentation
Class constructor giving the script.

Level

Declaration

public class pil.prs.Level

Documentation
Level defines hierarachical location of frame in strategy.

Operations

protected void setLevelKey(String levelKey)

Documentation
Sets name of keyword used to identify node at this level.
tgSet

protected void setLevelCriterion(pil.util.Criterion levelCriterion)

Documentation
Sets criterion for hierarchical levels of frames in to a
tree.
param
levelCriterion The criterion for this hierarchical level
tgSet

private boolean isLeaf()

Documentation
Check if level is bottom level that is with no children.

public RuleSet getRuleSet(String[] level)

Documentation
Gets RuleSet corresponding to specific level.

public String[] findLevel(pil.util.Frame frame)

Documentation
Determines hierarchical location of frame within
level structure of strategy. A null is returned if no level can
be found due criteria are not fulfilled or identifier keyword is
not present.
return
Array of strings defining the hierachical level within
stratefy frame collection

public Level()

Documentation
Default class constructor

Attributes

private pil.util.Criterion levelCriterion
private String levelKey

Association links

Aggregation links


Interaction diagram Reduction

pil.prs.Reduction.Reduction

Objects

aClient

persistence
transitory
name
aClient
positions
4,35,96,350,1

strategy ClassOfInstance Strategy

persistence
transitory
name
strategy
positions
107,35,186,350,1

actions ClassOfInstance ActionScript

persistence
transitory
name
actions
created
positions
840,35,226,350,1

rules ClassOfInstance RuleSet

persistence
transitory
name
rules
positions
501,35,176,350,1

rule ClassOfInstance Rule

persistence
transitory
name
rule
positions
687,35,146,350,1

level ClassOfInstance Level

persistence
transitory
name
level
positions
301,35,186,350,1


Interaction diagram Product

pil.prs.Product.Product

Objects

aClient

persistence
transitory
name
aClient
positions
4,35,96,524,1

strategy ClassOfInstance Strategy

persistence
transitory
name
strategy
positions
105,35,186,524,1

recipe ClassOfInstance Recipe

persistence
transitory
name
recipe
positions
298,35,176,524,1

collection ClassOfInstance FrameTree

persistence
transitory
name
collection
positions
481,35,206,524,1

cdb ClassOfInstance CalibDB

persistence
transitory
name
cdb
positions
694,35,176,524,1

rb ClassOfInstance RedBlock

persistence
transitory
name
rb
created
positions
879,35,196,524,1

rbs ClassOfInstance RBScheduler

persistence
transitory
name
rbs
positions
1082,35,216,524,1


Interaction diagram Execution

pil.prs.Execution.Execution

Objects

aClient

persistence
transitory
name
aClient
positions
7,35,96,618,1

actions ClassOfInstance ActionScript

persistence
transitory
name
actions
positions
118,35,226,618,1

rb ClassOfInstance RedBlock

persistence
transitory
name
rb
created
positions
939,35,196,618,1

recipe ClassOfInstance Recipe

persistence
transitory
name
recipe
positions
354,35,176,618,1

collection ClassOfInstance FrameTree

persistence
transitory
name
collection
positions
728,35,206,618,1

cdb ClassOfInstance CalibDB

persistence
transitory
name
cdb
positions
1141,35,176,618,1

rbs ClassOfInstance RBScheduler

persistence
transitory
name
rbs
positions
1323,35,216,618,1

category ClassOfInstance Category

persistence
transitory
name
category
positions
536,35,0,618,1


Interaction diagram Initiation

pil.prs.Initiation.Initiation

Objects

aClient

persistence
transitory
name
aClient
positions
14,35,96,445,1

strategy ClassOfInstance Strategy

persistence
transitory
name
strategy
created
positions
120,35,186,445,1

keyMap ClassOfInstance KeyMap

persistence
transitory
name
keyMap
created
positions
314,35,176,445,1

categories ClassOfInstance CategorySet

persistence
transitory
name
categories
created
positions
499,35,126,445,1

rules ClassOfInstance RuleSet

persistence
transitory
name
rules
created
positions
1051,35,176,445,1

collection ClassOfInstance FrameTree

persistence
transitory
name
collection
created
positions
1235,35,206,445,1

frame ClassOfInstance Frame

persistence
transitory
name
frame
created
positions
718,35,0,445,1

level ClassOfInstance Level

persistence
transitory
name
level
created
positions
888,35,0,445,1


Class diagram pil

pil.Default.Default

Packages


UseCase diagram UseCase11

pil.UseCase11.UseCase11

Usecases

UseCase startup CalibDB

Documentation
The Calibration database server is started.. The configuration is
read and connection to a DB engine is established after which the
Calibration Database server is activated.
name
startup CalibDB

Communications

UseCase shutdown CalibDB

Documentation
Calibration Database server is terminated after all pending
requests have been served and resources be freed.
name
shutdown CalibDB

Communications

UseCase submit calibration data

Documentation
Calibration data are submitted to the Calibration Database. Type
and format of the data are checked. The data are then copied to the
database and internal tables updated.
name
submit calibration data

Actors

Actor user

name
user

Communication

Actor administrator

name
administrator

Communication


UseCase diagram UseCase1

pil.UseCase1.UseCase1

Usecases

UseCase startup DataOrganizer

Documentation
The Data Organizer server is started. This involves reading its
configuration and initiating reduction strategies and frame collection
as specified. If required, a connection to the CalibDB server is
opened to retrieve data. Calibration data are obtained and added to
the appropriate frame collections. Finally, the DO server is started
and ready to receive requests.
name
startup DataOrganizer

Communications
UsesRelationships

UseCase startup RBScheduler

Documentation
The Reduction Block Scheduler is started. After reading its
configuration, a requested set of Reduction Systems are started and
connected to the Scheduler. The Scheduler is made active ready to
receive requests.
name
startup RBScheduler

Communications
UsesRelationships

UseCase shutdown RBScheduler

Documentation
The Reduction Block Scheduler is terminated after it has finished
processing all pending requests and freed its resources.
name
shutdown RBScheduler

Communications

UseCase shutdown DataOrganizer

Documentation
The Data Organizer server is terminated after all outstanding
requests have been served and resources released.
name
shutdown DataOrganizer

Communications

UseCase retrieve calibration data

Documentation
The request for retrieval of data from the Calibration Database is
converted to a Database specific query and send to the DB engine. The
result of the query is translated and returned.
name
retrieve calibration data

Actors

Actor user

name
user

Communication

Actor administrator

name
administrator


UseCase diagram UseCase2

pil.UseCase2.UseCase2

Usecases

UseCase reduce frames

Documentation
A set of frames is reduced according to rule defined by a given
strategy. The frames are first associated to a reduction strategy and
then classified by its rules. The specific reduction recipes to be
applied are given by the strategy. Corresponding to the recipes,
Reduction Blocks are created and executed. The results are returned
to the client.
name
reduce frames

UsesRelationships

UseCase find strategy

Documentation
The reduction strategy applicable to a given frame is found by
checking the frame header information and operational mode.
name
find strategy

UseCase classify frame

Documentation
A frame is classified according to rules given a reduction
strategy and its category is returned.
name
classify frame

UseCase create RB's

Documentation
A set of Reduction Blocks is created based on the recipes
specified by rules for a given frame category of a strategy. For each
recipe, the signature is retrieved and calibration frames of the
specified categories are found. These frames are then associated to
the frames to be reduced to identify proper matches. With the
information, the Reduction Blocks are created and returned.
name
create RB's

UsesRelationships

UseCase execute RB's

Documentation
A set of Reduction Blocks are executed by submitting them to the
Reduction Block Scheduler. It identifies the appropriate Reduction
System for each RB and converts the RB to a system specific script
which then is forwarded to the reduction system for actual execution.
The results are obtained from the Reduction System and returned to the
client.
name
execute RB's

UseCase generate data product

Documentation
A specified data product is generated for a given strategy. First
all possible recipe which can make the product are identified after
which data required for the processing are found. This is done by
finding frame of the appropriate categories and associating
calibration data to them. Finally, Reduction Blocks are created and
executed. The results are returned to the client.
name
generate data product

UsesRelationships

UseCase find recipe

Documentation
All recipes which can produce a specific data product are found by
scanning the recipe signatures.
name
find recipe

UseCase find frame of category

Documentation
All frame of a given category are found by searching the frame
collections specified.
name
find frame of category

UseCase associate frames

Documentation
Frames of a given category are associated to another frame by
comparing the primary key defined in the respective categories. First
all frames of the given category are found after which the comparison
is made.
name
associate frames

ExtendsRelationships

Actors

Actor user

name
user

Communication


Class diagram pil.pdo

pil.pdo.Default.Default

Classes

DataOrganizer

Declaration

public class pil.pdo.DataOrganizer

Documentation
DataOrganizer is the class responsible to the high level
administration of data files to be processed by the pipeline. It
determines the context (such as operational mode and observing
domain) for the data and identifies which reduction strategies
available can perform the actual processing. All strategy
which can reduce a file are used in the order specified.

Operations

public void processFile(File file)

Documentation
Processes data file. The mode and domain or the file
is found by using the context definition which also
determines the reduction strategies able to process it.
Each or these strategies is then used to do the actual
reduction of the file.
param
file The file in FITS format to be processed

public void setContext(File context)

Documentation
Sets context used by dataorganizer.
param
context The configuration file for context

public void addStrategy(pil.prs.Strategy strategy)

Documentation
Adds reduction strategy.

public DataOrganizer(File context)

Documentation
Class constructor specifying its context
param
context The configuration file for context

public DataOrganizer()

Documentation
Default class constructor

Attributes

private Vector lnkStrategies

associates
pil.prs.Strategy
supplierCardinality
1..*

Association links

Context

Declaration

public class pil.pdo.Context

Documentation
Context specifies the opeartional mode and observation domain
of data files. Further, it defines the criteria after which
a given data file should be processed by a reduction strategy.
Header information of data files are accessed through a keyword map.

Operations

public String[] findStrategies(pil.util.Frame frame)

Documentation
Finds all strategies which should be used for processing of
frame. The frame must be cerated by the same context
with the same keyword map.
param
frame The frame for which reduction strategies
should be found
return
Array of strategy identifiers

public pil.util.Frame createFrame(Object fitsFile)

Documentation
Creates frame object from a FITS file using context
keyword map. Mode and domain are stored in frame.
param
fitsFile The FITS file which context should be found
return
Frame with mode and domain attributes

public String[] getStrategies()

Documentation
Gets all reduction strategies specified by the context.
return
Array of strategy identifiers

public Context(File context)

Documentation
Class constructor specifying configuration file

Attributes

private Vector lnkModeCriteria

associates
pil.util.Criterion
supplierCardinality
0..*

private Vector lnkStrategyCriteria

associates
pil.util.Criterion

private Vector lnkDomainCriteria

associates
pil.util.Criterion

private pil.util.KeyMap lnkKeymap

Interaction diagram initiation

pil.pdo.initiation.initiation

Objects

aClient

persistence
transitory
name
aClient
positions
8,35,96,350,1

do ClassOfInstance DataOrganizer

persistence
transitory
name
do
created
positions
109,35,236,350,1

context ClassOfInstance Context

persistence
transitory
name
context
created
positions
356,35,176,350,1

strategy ClassOfInstance Strategy

persistence
transitory
name
strategy
created
positions
723,35,186,350,1

keymap ClassOfInstance KeyMap

persistence
transitory
name
keymap
created
positions
539,35,176,350,1


Interaction diagram Reduction

pil.pdo.Reduction.Reduction

Objects

aClient

persistence
transitory
name
aClient
positions
12,35,96,458,1

do ClassOfInstance DataOrganizer

persistence
transitory
name
do
positions
119,35,236,458,1

context ClassOfInstance Context

persistence
transitory
name
context
positions
363,35,176,458,1

strategy ClassOfInstance Strategy

persistence
transitory
name
strategy
positions
717,35,186,458,1

rbs ClassOfInstance RBScheduler

persistence
transitory
name
rbs
positions
1141,35,216,458,1

frame ClassOfInstance Frame

persistence
transitory
name
frame
created
positions
544,35,0,458,1

actions ClassOfInstance ActionScript

persistence
transitory
name
actions
created
positions
909,35,226,458,1


Class diagram pil.rsw

pil.rsw.Default.Default

Classes

DRSWrapper

Declaration

public class pil.rsw.DRSWrapper

Documentation
DRSWrapper provides an adaptor to a specific Data Reduction System.
It keeps the mapping of abstract Reduction Block specification into
scripts for the DRS.

Operations

public pil.util.Status getStatus()

Documentation
Gets status of wrapper.
tgGet

public void execute(pil.util.RedBlock redBlock)

Documentation
Executes Reduction Block by wrapper DRS.

public DRSWrapper(String system, File recipeMap)

Documentation
Class constructor specifying Data Reduction System and
associated mapping of recipes.

Attributes

private Vector lknRedBlocks

associates
pil.util.RedBlock

private int status

Association links

DRSystem

Declaration

public class pil.rsw.DRSystem

Documentation
DRSystem is an interface class which connects to a specific
Data Reduction System. The class handles all specific
communication to the DRS.

Operations

public void execute(String script)

Documentation
Executes script in specific DRS.

public DRSystem()

Documentation
Default class constructor.

DRSWrapperSet

Declaration

public class pil.rsw.DRSWrapperSet

Documentation
DRSWrapperSet contains a collection of active Data Reduction
Systems represented through wrappers. It can create new
wrappers using a facroty class.

Operations

public DRSWrapper getDRSW(String name)

Documentation
Gets DRS wrapper with given name.

public DRSWrapper getDRSWbyRecipe(String recName)

Documentation
Gets DRS wrapper which is willing to execute given recipe.

public void removeDRSWrapper(String name)

Documentation
Removes name wrapper.

public String createDRSWrapper(String system, String resource)

Documentation
Creates new wrapper for specific Data Reduction System with
give resources using Fractory.
return
Name of new DRS wrapper.

public DRSWrapperSet()

Documentation
Default class constructor.

Association links

Aggregation links

DRSWFactory

Declaration

public class pil.rsw.DRSWFactory

Documentation
DRSWFacroty is a factory class which creates new Data Reduction
System wrapper after a set of specifications.

Operations

public DRSWrapper createDRSW(String system, String version, String resource)

Documentation
Creates new DRSWrapper object for specific DRS.
param
system The name of the Data Reduction System.
param
version The version of the DRS.
param
resource The resources required for the DRS instance.
return
DRSWrapper instance or null if the wrapper
could not be created.

public DRSWFactory()

Documentation
Default class constructor.

RecipeMapSet

Declaration

public class pil.rsw.RecipeMapSet

Documentation
RecipeMapSet is a collection of all recipe maps for a specific
Data Reduction System. The class maps a Reduction Block to a
script by first finding the map of the recipe and asking it to
create the script.

Operations

public String mapRecipe(pil.util.RedBlock rb)

Documentation
Maps Reduction Block into DRS specific script.
return
String containing script.

public RecipeMapSet()

Documentation
Default class constructor.

Aggregation links

RecipeMap

Declaration

public class pil.rsw.RecipeMap

Documentation
RecipeMap defines mapping of abstract recipe to system
specific script.

Operations

public String getName()

Documentation
Gets name of recipe.
tgGet

public String map(pil.util.RedBlock rb)

Documentation
Maps Reduction Block into system specific script.

public RecipeMap(File map)

Documentation
Class constructor specifying configuration file.

Attributes

private String name

Interaction diagram Initiation

pil.rsw.Initiation.Initiation

Objects

aClient

persistence
transitory
name
aClient
positions
18,35,96,441,1

drsWrapperSet ClassOfInstance DRSWrapperSet

persistence
transitory
name
drsWrapperSet
created
positions
118,35,236,441,1

drswFactory ClassOfInstance DRSWFactory

persistence
transitory
name
drswFactory
created
positions
358,35,216,441,1

drsWrapper ClassOfInstance DRSWrapper

persistence
transitory
name
drsWrapper
created
destroyed
positions
581,35,206,441,1

recMap ClassOfInstance RecipeMap

persistence
transitory
name
recMap
multipleInstance
created
destroyed
positions
1030,35,196,441,1

recMapSet ClassOfInstance RecipeMapSet

persistence
transitory
name
recMapSet
created
destroyed
positions
795,35,226,441,1

drStytem ClassOfInstance DRSystem

persistence
transitory
name
drStytem
created
destroyed
positions
1233,35,186,441,1


Interaction diagram execute

pil.rsw.execute.execute

Objects

aClient

persistence
transitory
positions
9,35,96,364,1
name
aClient

drsWrapper ClassOfInstance DRSWrapper

persistence
transitory
name
drsWrapper
positions
112,35,206,364,1

recMapSet ClassOfInstance RecipeMapSet

persistence
transitory
name
recMapSet
positions
530,35,226,364,1

recMap ClassOfInstance RecipeMap

persistence
transitory
name
recMap
positions
766,35,196,364,1

drSystem ClassOfInstance DRSystem

persistence
transitory
name
drSystem
positions
970,35,186,364,1

rb ClassOfInstance RedBlock

persistence
transitory
name
rb
positions
327,35,196,364,1