asdm::CalFluxRow Class Reference

#include <CalFluxRow.h>

Collaboration diagram for asdm::CalFluxRow:

Collaboration graph
[legend]
List of all members.

Detailed Description

The CalFluxRow class is a row of a CalFluxTable.

Generated from model's revision "1.46", branch "HEAD"

Definition at line 163 of file CalFluxRow.h.

Public Member Functions

virtual ~CalFluxRow ()
CalFluxTablegetTable () const
 Return the table to which this row belongs.
CalFluxRowIDL * toIDL () const
 Return this row in the form of an IDL struct.
void setFromIDL (CalFluxRowIDL x) throw (ConversionException)
 Fill the values of this row from the IDL struct CalFluxRowIDL.
string toXML () const
 Return this row in the form of an XML string.
void setFromXML (string rowDoc) throw (ConversionException)
 Fill the values of this row from an XML string that was produced by the toXML() method.
void setSourceName (string sourceName)
 Set sourceName with the specified string.
int getNumFrequency () const
 Get numFrequency.
void setNumFrequency (int numFrequency)
 Set numFrequency with the specified int.
int getNumStokes () const
 Get numStokes.
void setNumStokes (int numStokes)
 Set numStokes with the specified int.
ArrayTime getStartValidTime () const
 Get startValidTime.
void setStartValidTime (ArrayTime startValidTime)
 Set startValidTime with the specified ArrayTime.
ArrayTime getEndValidTime () const
 Get endValidTime.
void setEndValidTime (ArrayTime endValidTime)
 Set endValidTime with the specified ArrayTime.
vector< StokesParameterMod::StokesParameter > getStokes () const
 Get stokes.
void setStokes (vector< StokesParameterMod::StokesParameter > stokes)
 Set stokes with the specified vector<StokesParameterMod::StokesParameter >.
vector< vector< double > > getFlux () const
 Get flux.
void setFlux (vector< vector< double > > flux)
 Set flux with the specified vector<vector<double > >.
vector< vector< double > > getFluxError () const
 Get fluxError.
void setFluxError (vector< vector< double > > fluxError)
 Set fluxError with the specified vector<vector<double > >.
bool isSizeExists () const
 The attribute size is optional.
vector< vector< vector< Angle > > > getSize () const throw (IllegalAccessException)
 Get size, which is optional.
void setSize (vector< vector< vector< Angle > > > size)
 Set size with the specified vector<vector<vector<Angle > > >.
void clearSize ()
 Mark size, which is an optional field, as non-existent.
bool isSizeErrorExists () const
 The attribute sizeError is optional.
vector< vector< vector< Angle > > > getSizeError () const throw (IllegalAccessException)
 Get sizeError, which is optional.
void setSizeError (vector< vector< vector< Angle > > > sizeError)
 Set sizeError with the specified vector<vector<vector<Angle > > >.
void clearSizeError ()
 Mark sizeError, which is an optional field, as non-existent.
bool isPAExists () const
 The attribute PA is optional.
vector< vector< Angle > > getPA () const throw (IllegalAccessException)
 Get PA, which is optional.
void setPA (vector< vector< Angle > > PA)
 Set PA with the specified vector<vector<Angle > >.
void clearPA ()
 Mark PA, which is an optional field, as non-existent.
bool isPAErrorExists () const
 The attribute PAError is optional.
vector< vector< Angle > > getPAError () const throw (IllegalAccessException)
 Get PAError, which is optional.
void setPAError (vector< vector< Angle > > PAError)
 Set PAError with the specified vector<vector<Angle > >.
void clearPAError ()
 Mark PAError, which is an optional field, as non-existent.
FluxCalibrationMethodMod::FluxCalibrationMethod getFluxMethod () const
 Get fluxMethod.
void setFluxMethod (FluxCalibrationMethodMod::FluxCalibrationMethod fluxMethod)
 Set fluxMethod with the specified FluxCalibrationMethodMod::FluxCalibrationMethod.
bool isDirectionExists () const
 The attribute direction is optional.
vector< AnglegetDirection () const throw (IllegalAccessException)
 Get direction, which is optional.
void setDirection (vector< Angle > direction)
 Set direction with the specified vector<Angle >.
void clearDirection ()
 Mark direction, which is an optional field, as non-existent.
bool isSourceModelExists () const
 The attribute sourceModel is optional.
SourceModelMod::SourceModel getSourceModel () const throw (IllegalAccessException)
 Get sourceModel, which is optional.
void setSourceModel (SourceModelMod::SourceModel sourceModel)
 Set sourceModel with the specified SourceModelMod::SourceModel.
void clearSourceModel ()
 Mark sourceModel, which is an optional field, as non-existent.
vector< FrequencygetFrequencyRange () const
 Get frequencyRange.
void setFrequencyRange (vector< Frequency > frequencyRange)
 Set frequencyRange with the specified vector<Frequency >.
void setCalDataId (Tag calDataId)
 Set calDataId with the specified Tag.
Tag getCalReductionId () const
 Get calReductionId.
void setCalReductionId (Tag calReductionId)
 Set calReductionId with the specified Tag.
Links *CalDataRowgetCalDataUsingCalDataId ()
 calDataId pointer to the row in the CalData table having CalData.calDataId == calDataId
CalReductionRowgetCalReductionUsingCalReductionId ()
 calReductionId pointer to the row in the CalReduction table having CalReduction.calReductionId == calReductionId
bool compareNoAutoInc (Tag calDataId, Tag calReductionId, string sourceName, int numFrequency, int numStokes, ArrayTime startValidTime, ArrayTime endValidTime, vector< StokesParameterMod::StokesParameter > stokes, vector< vector< double > > flux, vector< vector< double > > fluxError, FluxCalibrationMethodMod::FluxCalibrationMethod fluxMethod, vector< Frequency > frequencyRange)
 Compare each mandatory attribute except the autoincrementable one of this CalFluxRow with the corresponding parameters and return true if there is a match and false otherwise.
bool compareRequiredValue (int numFrequency, int numStokes, ArrayTime startValidTime, ArrayTime endValidTime, vector< StokesParameterMod::StokesParameter > stokes, vector< vector< double > > flux, vector< vector< double > > fluxError, FluxCalibrationMethodMod::FluxCalibrationMethod fluxMethod, vector< Frequency > frequencyRange)
bool equalByRequiredValue (CalFluxRow *x)
 Return true if all required attributes of the value part are equal to their homologues in x and false otherwise.

Public Attributes

Intrinsic Table Attributes
Extrinsic Table Attributes

Private Member Functions

void isAdded ()
 This method is used by the Table class when this row is added to the table.
 CalFluxRow (CalFluxTable &table)
 Create a CalFluxRow.
 CalFluxRow (CalFluxTable &table, CalFluxRow &row)
 Create a CalFluxRow using a copy constructor mechanism.

Private Attributes

CalFluxTabletable
 The table to which this row belongs.
bool hasBeenAdded
 Whether this row has been added to the table or not.
int numFrequency
 ===> Attribute numFrequency
int numStokes
 ===> Attribute numStokes
ArrayTime startValidTime
 ===> Attribute startValidTime
ArrayTime endValidTime
 ===> Attribute endValidTime
vector< StokesParameterMod::StokesParameter > stokes
 ===> Attribute stokes
vector< vector< double > > flux
 ===> Attribute flux
vector< vector< double > > fluxError
 ===> Attribute fluxError
bool sizeExists
 ===> Attribute size, which is optional
vector< vector< vector< Angle > > > size
bool sizeErrorExists
 ===> Attribute sizeError, which is optional
vector< vector< vector< Angle > > > sizeError
bool PAExists
 ===> Attribute PA, which is optional
vector< vector< Angle > > PA
bool PAErrorExists
 ===> Attribute PAError, which is optional
vector< vector< Angle > > PAError
FluxCalibrationMethodMod::FluxCalibrationMethod fluxMethod
 ===> Attribute fluxMethod
bool directionExists
 ===> Attribute direction, which is optional
vector< Angledirection
bool sourceModelExists
 ===> Attribute sourceModel, which is optional
SourceModelMod::SourceModel sourceModel
vector< FrequencyfrequencyRange
 ===> Attribute frequencyRange
Tag calReductionId
 ===> Attribute calReductionId

Friends

class asdm::CalFluxTable


Constructor & Destructor Documentation

virtual asdm::CalFluxRow::~CalFluxRow (  )  [virtual]

asdm::CalFluxRow::CalFluxRow ( CalFluxTable table  )  [private]

Create a CalFluxRow.

This constructor is private because only the table can create rows. All rows know the table to which they belong.

Parameters:
table The table to which this row belongs.

asdm::CalFluxRow::CalFluxRow ( CalFluxTable table,
CalFluxRow row 
) [private]

Create a CalFluxRow using a copy constructor mechanism.

Given a CalFluxRow row and a CalFluxTable table, the method creates a new CalFluxRow owned by table. Each attribute of the created row is a copy (deep) of the corresponding attribute of row. The method does not add the created row to its table, its simply parents it to table, a call to the add method has to be done in order to get the row added (very likely after having modified some of its attributes). If row is null then the method returns a row with default values for its attributes.

This constructor is private because only the table can create rows. All rows know the table to which they belong.

Parameters:
table The table to which this row belongs.
row The row which is to be copied.


Member Function Documentation

CalFluxTable& asdm::CalFluxRow::getTable (  )  const

Return the table to which this row belongs.

CalFluxRowIDL* asdm::CalFluxRow::toIDL (  )  const

Return this row in the form of an IDL struct.

Returns:
The values of this row as a CalFluxRowIDL struct.

void asdm::CalFluxRow::setFromIDL ( CalFluxRowIDL  x  )  throw (ConversionException)

Fill the values of this row from the IDL struct CalFluxRowIDL.

Parameters:
x The IDL struct containing the values used to fill this row.

string asdm::CalFluxRow::toXML (  )  const

Return this row in the form of an XML string.

Returns:
The values of this row as an XML string.

void asdm::CalFluxRow::setFromXML ( string  rowDoc  )  throw (ConversionException)

Fill the values of this row from an XML string that was produced by the toXML() method.

Parameters:
x The XML string being used to set the values of this row.

void asdm::CalFluxRow::setSourceName ( string  sourceName  ) 

Set sourceName with the specified string.

Parameters:
sourceName The string value to which sourceName is to be set.
Exceptions:
IllegalAccessException If an attempt is made to change this field after is has been added to the table.

int asdm::CalFluxRow::getNumFrequency (  )  const

Get numFrequency.

Returns:
numFrequency as int

void asdm::CalFluxRow::setNumFrequency ( int  numFrequency  ) 

Set numFrequency with the specified int.

Parameters:
numFrequency The int value to which numFrequency is to be set.

int asdm::CalFluxRow::getNumStokes (  )  const

Get numStokes.

Returns:
numStokes as int

void asdm::CalFluxRow::setNumStokes ( int  numStokes  ) 

Set numStokes with the specified int.

Parameters:
numStokes The int value to which numStokes is to be set.

ArrayTime asdm::CalFluxRow::getStartValidTime (  )  const

Get startValidTime.

Returns:
startValidTime as ArrayTime

void asdm::CalFluxRow::setStartValidTime ( ArrayTime  startValidTime  ) 

Set startValidTime with the specified ArrayTime.

Parameters:
startValidTime The ArrayTime value to which startValidTime is to be set.

ArrayTime asdm::CalFluxRow::getEndValidTime (  )  const

Get endValidTime.

Returns:
endValidTime as ArrayTime

void asdm::CalFluxRow::setEndValidTime ( ArrayTime  endValidTime  ) 

Set endValidTime with the specified ArrayTime.

Parameters:
endValidTime The ArrayTime value to which endValidTime is to be set.

vector<StokesParameterMod::StokesParameter > asdm::CalFluxRow::getStokes (  )  const

Get stokes.

Returns:
stokes as vector<StokesParameterMod::StokesParameter >

void asdm::CalFluxRow::setStokes ( vector< StokesParameterMod::StokesParameter >  stokes  ) 

Set stokes with the specified vector<StokesParameterMod::StokesParameter >.

Parameters:
stokes The vector<StokesParameterMod::StokesParameter > value to which stokes is to be set.

vector<vector<double > > asdm::CalFluxRow::getFlux (  )  const

Get flux.

Returns:
flux as vector<vector<double > >

void asdm::CalFluxRow::setFlux ( vector< vector< double > >  flux  ) 

Set flux with the specified vector<vector<double > >.

Parameters:
flux The vector<vector<double > > value to which flux is to be set.

vector<vector<double > > asdm::CalFluxRow::getFluxError (  )  const

Get fluxError.

Returns:
fluxError as vector<vector<double > >

void asdm::CalFluxRow::setFluxError ( vector< vector< double > >  fluxError  ) 

Set fluxError with the specified vector<vector<double > >.

Parameters:
fluxError The vector<vector<double > > value to which fluxError is to be set.

bool asdm::CalFluxRow::isSizeExists (  )  const

The attribute size is optional.

Return true if this attribute exists.

Returns:
true if and only if the size attribute exists.

vector<vector<vector<Angle > > > asdm::CalFluxRow::getSize (  )  const throw (IllegalAccessException)

Get size, which is optional.

Returns:
size as vector<vector<vector<Angle > > >
Exceptions:
IllegalAccessException If size does not exist.

void asdm::CalFluxRow::setSize ( vector< vector< vector< Angle > > >  size  ) 

Set size with the specified vector<vector<vector<Angle > > >.

Parameters:
size The vector<vector<vector<Angle > > > value to which size is to be set.

void asdm::CalFluxRow::clearSize (  ) 

Mark size, which is an optional field, as non-existent.

bool asdm::CalFluxRow::isSizeErrorExists (  )  const

The attribute sizeError is optional.

Return true if this attribute exists.

Returns:
true if and only if the sizeError attribute exists.

vector<vector<vector<Angle > > > asdm::CalFluxRow::getSizeError (  )  const throw (IllegalAccessException)

Get sizeError, which is optional.

Returns:
sizeError as vector<vector<vector<Angle > > >
Exceptions:
IllegalAccessException If sizeError does not exist.

void asdm::CalFluxRow::setSizeError ( vector< vector< vector< Angle > > >  sizeError  ) 

Set sizeError with the specified vector<vector<vector<Angle > > >.

Parameters:
sizeError The vector<vector<vector<Angle > > > value to which sizeError is to be set.

void asdm::CalFluxRow::clearSizeError (  ) 

Mark sizeError, which is an optional field, as non-existent.

bool asdm::CalFluxRow::isPAExists (  )  const

The attribute PA is optional.

Return true if this attribute exists.

Returns:
true if and only if the PA attribute exists.

vector<vector<Angle > > asdm::CalFluxRow::getPA (  )  const throw (IllegalAccessException)

Get PA, which is optional.

Returns:
PA as vector<vector<Angle > >
Exceptions:
IllegalAccessException If PA does not exist.

void asdm::CalFluxRow::setPA ( vector< vector< Angle > >  PA  ) 

Set PA with the specified vector<vector<Angle > >.

Parameters:
PA The vector<vector<Angle > > value to which PA is to be set.

void asdm::CalFluxRow::clearPA (  ) 

Mark PA, which is an optional field, as non-existent.

bool asdm::CalFluxRow::isPAErrorExists (  )  const

The attribute PAError is optional.

Return true if this attribute exists.

Returns:
true if and only if the PAError attribute exists.

vector<vector<Angle > > asdm::CalFluxRow::getPAError (  )  const throw (IllegalAccessException)

Get PAError, which is optional.

Returns:
PAError as vector<vector<Angle > >
Exceptions:
IllegalAccessException If PAError does not exist.

void asdm::CalFluxRow::setPAError ( vector< vector< Angle > >  PAError  ) 

Set PAError with the specified vector<vector<Angle > >.

Parameters:
PAError The vector<vector<Angle > > value to which PAError is to be set.

void asdm::CalFluxRow::clearPAError (  ) 

Mark PAError, which is an optional field, as non-existent.

FluxCalibrationMethodMod::FluxCalibrationMethod asdm::CalFluxRow::getFluxMethod (  )  const

Get fluxMethod.

Returns:
fluxMethod as FluxCalibrationMethodMod::FluxCalibrationMethod

void asdm::CalFluxRow::setFluxMethod ( FluxCalibrationMethodMod::FluxCalibrationMethod  fluxMethod  ) 

Set fluxMethod with the specified FluxCalibrationMethodMod::FluxCalibrationMethod.

Parameters:
fluxMethod The FluxCalibrationMethodMod::FluxCalibrationMethod value to which fluxMethod is to be set.

bool asdm::CalFluxRow::isDirectionExists (  )  const

The attribute direction is optional.

Return true if this attribute exists.

Returns:
true if and only if the direction attribute exists.

vector<Angle > asdm::CalFluxRow::getDirection (  )  const throw (IllegalAccessException)

Get direction, which is optional.

Returns:
direction as vector<Angle >
Exceptions:
IllegalAccessException If direction does not exist.

void asdm::CalFluxRow::setDirection ( vector< Angle direction  ) 

Set direction with the specified vector<Angle >.

Parameters:
direction The vector<Angle > value to which direction is to be set.

void asdm::CalFluxRow::clearDirection (  ) 

Mark direction, which is an optional field, as non-existent.

bool asdm::CalFluxRow::isSourceModelExists (  )  const

The attribute sourceModel is optional.

Return true if this attribute exists.

Returns:
true if and only if the sourceModel attribute exists.

SourceModelMod::SourceModel asdm::CalFluxRow::getSourceModel (  )  const throw (IllegalAccessException)

Get sourceModel, which is optional.

Returns:
sourceModel as SourceModelMod::SourceModel
Exceptions:
IllegalAccessException If sourceModel does not exist.

void asdm::CalFluxRow::setSourceModel ( SourceModelMod::SourceModel  sourceModel  ) 

Set sourceModel with the specified SourceModelMod::SourceModel.

Parameters:
sourceModel The SourceModelMod::SourceModel value to which sourceModel is to be set.

void asdm::CalFluxRow::clearSourceModel (  ) 

Mark sourceModel, which is an optional field, as non-existent.

vector<Frequency > asdm::CalFluxRow::getFrequencyRange (  )  const

Get frequencyRange.

Returns:
frequencyRange as vector<Frequency >

void asdm::CalFluxRow::setFrequencyRange ( vector< Frequency frequencyRange  ) 

Set frequencyRange with the specified vector<Frequency >.

Parameters:
frequencyRange The vector<Frequency > value to which frequencyRange is to be set.

void asdm::CalFluxRow::setCalDataId ( Tag  calDataId  ) 

Set calDataId with the specified Tag.

Parameters:
calDataId The Tag value to which calDataId is to be set.
Exceptions:
IllegalAccessException If an attempt is made to change this field after is has been added to the table.

Tag asdm::CalFluxRow::getCalReductionId (  )  const

Get calReductionId.

Returns:
calReductionId as Tag

void asdm::CalFluxRow::setCalReductionId ( Tag  calReductionId  ) 

Set calReductionId with the specified Tag.

Parameters:
calReductionId The Tag value to which calReductionId is to be set.
Exceptions:
IllegalAccessException If an attempt is made to change this field after is has been added to the table.

Links* CalDataRow* asdm::CalFluxRow::getCalDataUsingCalDataId (  ) 

calDataId pointer to the row in the CalData table having CalData.calDataId == calDataId

Returns:
a CalDataRow*

CalReductionRow* asdm::CalFluxRow::getCalReductionUsingCalReductionId (  ) 

calReductionId pointer to the row in the CalReduction table having CalReduction.calReductionId == calReductionId

Returns:
a CalReductionRow*

bool asdm::CalFluxRow::compareNoAutoInc ( Tag  calDataId,
Tag  calReductionId,
string  sourceName,
int  numFrequency,
int  numStokes,
ArrayTime  startValidTime,
ArrayTime  endValidTime,
vector< StokesParameterMod::StokesParameter >  stokes,
vector< vector< double > >  flux,
vector< vector< double > >  fluxError,
FluxCalibrationMethodMod::FluxCalibrationMethod  fluxMethod,
vector< Frequency frequencyRange 
)

Compare each mandatory attribute except the autoincrementable one of this CalFluxRow with the corresponding parameters and return true if there is a match and false otherwise.

bool asdm::CalFluxRow::compareRequiredValue ( int  numFrequency,
int  numStokes,
ArrayTime  startValidTime,
ArrayTime  endValidTime,
vector< StokesParameterMod::StokesParameter >  stokes,
vector< vector< double > >  flux,
vector< vector< double > >  fluxError,
FluxCalibrationMethodMod::FluxCalibrationMethod  fluxMethod,
vector< Frequency frequencyRange 
)

bool asdm::CalFluxRow::equalByRequiredValue ( CalFluxRow x  ) 

Return true if all required attributes of the value part are equal to their homologues in x and false otherwise.

Parameters:
x a pointer on the CalFluxRow whose required attributes of the value part will be compared with those of this.
Returns:
a boolean.

void asdm::CalFluxRow::isAdded (  )  [private]

This method is used by the Table class when this row is added to the table.


Friends And Related Function Documentation

friend class asdm::CalFluxTable [friend]

Definition at line 164 of file CalFluxRow.h.


Member Data Documentation

Extrinsic Table asdm::CalFluxRow::Attributes

Definition at line 209 of file CalFluxRow.h.

Extrinsic Table asdm::CalFluxRow::Attributes

Definition at line 761 of file CalFluxRow.h.

CalFluxTable& asdm::CalFluxRow::table [private]

The table to which this row belongs.

Definition at line 887 of file CalFluxRow.h.

bool asdm::CalFluxRow::hasBeenAdded [private]

Whether this row has been added to the table or not.

Definition at line 891 of file CalFluxRow.h.

int asdm::CalFluxRow::numFrequency [private]

===> Attribute numFrequency

Definition at line 946 of file CalFluxRow.h.

int asdm::CalFluxRow::numStokes [private]

===> Attribute numStokes

Definition at line 957 of file CalFluxRow.h.

ArrayTime asdm::CalFluxRow::startValidTime [private]

===> Attribute startValidTime

Definition at line 968 of file CalFluxRow.h.

ArrayTime asdm::CalFluxRow::endValidTime [private]

===> Attribute endValidTime

Definition at line 979 of file CalFluxRow.h.

vector<StokesParameterMod::StokesParameter > asdm::CalFluxRow::stokes [private]

===> Attribute stokes

Definition at line 990 of file CalFluxRow.h.

vector<vector<double > > asdm::CalFluxRow::flux [private]

===> Attribute flux

Definition at line 1001 of file CalFluxRow.h.

vector<vector<double > > asdm::CalFluxRow::fluxError [private]

===> Attribute fluxError

Definition at line 1012 of file CalFluxRow.h.

bool asdm::CalFluxRow::sizeExists [private]

===> Attribute size, which is optional

Definition at line 1022 of file CalFluxRow.h.

vector<vector<vector<Angle > > > asdm::CalFluxRow::size [private]

Definition at line 1025 of file CalFluxRow.h.

bool asdm::CalFluxRow::sizeErrorExists [private]

===> Attribute sizeError, which is optional

Definition at line 1035 of file CalFluxRow.h.

vector<vector<vector<Angle > > > asdm::CalFluxRow::sizeError [private]

Definition at line 1038 of file CalFluxRow.h.

bool asdm::CalFluxRow::PAExists [private]

===> Attribute PA, which is optional

Definition at line 1048 of file CalFluxRow.h.

vector<vector<Angle > > asdm::CalFluxRow::PA [private]

Definition at line 1051 of file CalFluxRow.h.

bool asdm::CalFluxRow::PAErrorExists [private]

===> Attribute PAError, which is optional

Definition at line 1061 of file CalFluxRow.h.

vector<vector<Angle > > asdm::CalFluxRow::PAError [private]

Definition at line 1064 of file CalFluxRow.h.

FluxCalibrationMethodMod::FluxCalibrationMethod asdm::CalFluxRow::fluxMethod [private]

===> Attribute fluxMethod

Definition at line 1075 of file CalFluxRow.h.

bool asdm::CalFluxRow::directionExists [private]

===> Attribute direction, which is optional

Definition at line 1085 of file CalFluxRow.h.

vector<Angle > asdm::CalFluxRow::direction [private]

Definition at line 1088 of file CalFluxRow.h.

bool asdm::CalFluxRow::sourceModelExists [private]

===> Attribute sourceModel, which is optional

Definition at line 1098 of file CalFluxRow.h.

SourceModelMod::SourceModel asdm::CalFluxRow::sourceModel [private]

Definition at line 1101 of file CalFluxRow.h.

vector<Frequency > asdm::CalFluxRow::frequencyRange [private]

===> Attribute frequencyRange

Definition at line 1112 of file CalFluxRow.h.

Tag asdm::CalFluxRow::calReductionId [private]

===> Attribute calReductionId

Definition at line 1138 of file CalFluxRow.h.


The documentation for this class was generated from the following file:
Generated on Thu Aug 27 21:24:03 2009 for NRAOCASA by  doxygen 1.5.1