Mantid
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Mantid::API::WorkspaceProperty< TYPE > Class Template Reference

A property class for workspaces. More...

#include <WorkspaceProperty.h>

Inheritance diagram for Mantid::API::WorkspaceProperty< TYPE >:
Mantid::Kernel::PropertyWithValue< TYPE > Mantid::API::IWorkspaceProperty Mantid::Kernel::Property

Public Member Functions

std::vector< std::string > allowedValues () const override
 Returns the set of valid values for this property, if such a set exists. More...
 
WorkspaceProperty< TYPE > * clone () const override
 'Virtual copy constructor' More...
 
const Kernel::PropertyHistory createHistory () const override
 Create a PropertyHistory object representing the current state of the Property. More...
 
std::string getDefault () const override
 Get the default value for the property which is the value the property was initialised with. More...
 
Workspace_sptr getWorkspace () const override
 Get a pointer to the workspace. More...
 
bool isDefault () const override
 Overriden function that returns if property has the same value that it was initialised with, if applicable. More...
 
bool isLocking () const override
 Will the workspace be locked when starting an algorithm? More...
 
bool isOptional () const override
 Is the input workspace property optional (can be blank)? More...
 
std::string isValid () const override
 Overridden function that checks whether the property, if not overriden returns "". More...
 
bool isValueSerializable () const override
 Whether the string returned by value() can be used for serialization. More...
 
WorkspacePropertyoperator+= (Kernel::Property const *) override
 Add to this. More...
 
WorkspacePropertyoperator= (const std::shared_ptr< TYPE > &value) override
 
WorkspacePropertyoperator= (const WorkspaceProperty &right)
 
std::string setDataItem (const std::shared_ptr< Kernel::DataItem > &value) override
 Set the value of the property via a DataItem pointer. More...
 
void setIsMasterRank (bool isMasterRank) override
 Sets a flag indicating whether this is the master rank in MPI builds. More...
 
std::string setValue (const std::string &value) override
 Set the value of the property via a string. More...
 
std::string setValueFromJson (const Json::Value &value) override
 Set the value of the property via a Json object. More...
 
bool store () override
 Store a workspace into the AnalysisDataService. More...
 
std::string value () const override
 Returns the value of the property as a string. More...
 
Json::Value valueAsJson () const override
 Returns the value of the property as a Json::Value. More...
 
 WorkspaceProperty (const std::string &name, const std::string &wsName, const unsigned int direction, const Kernel::IValidator_sptr &validator=Kernel::IValidator_sptr(new Kernel::NullValidator))
 
 WorkspaceProperty (const std::string &name, const std::string &wsName, const unsigned int direction, const PropertyMode::Type optional, const Kernel::IValidator_sptr &validator=Kernel::IValidator_sptr(new Kernel::NullValidator))
 
 WorkspaceProperty (const std::string &name, const std::string &wsName, const unsigned int direction, const PropertyMode::Type optional, const LockMode::Type locking, const Kernel::IValidator_sptr &validator=Kernel::IValidator_sptr(new Kernel::NullValidator))
 
 WorkspaceProperty (const WorkspaceProperty &right)
 
- Public Member Functions inherited from Mantid::Kernel::PropertyWithValue< TYPE >
std::vector< std::string > allowedValues () const override
 Returns the set of valid values for this property, if such a set exists. More...
 
PropertyWithValue< TYPE > * clone () const override
 'Virtual copy constructor' More...
 
std::string getDefault () const override
 Get the default value for the property which is the value the property was initialised with. More...
 
IValidator_sptr getValidator () const
 
bool isDefault () const override
 Overriden function that returns if property has the same value that it was initialised with, if applicable. More...
 
bool isMultipleSelectionAllowed () override
 Is Multiple Selection Allowed. More...
 
std::string isValid () const override
 Overridden function that checks whether the property, if not overriden returns "". More...
 
virtual operator const TYPE & () const
 
bool operator!= (const PropertyWithValue< TYPE > &rhs) const
 
virtual const TYPEoperator() () const
 
PropertyWithValueoperator+= (Property const *right) override
 Add to this. More...
 
PropertyWithValueoperator= (const PropertyWithValue &right)
 
virtual PropertyWithValueoperator= (const TYPE &value)
 
bool operator== (const PropertyWithValue< TYPE > &rhs) const
 
 PropertyWithValue (const PropertyWithValue< TYPE > &right)
 
 PropertyWithValue (const std::string &name, TYPE defaultValue, const std::string &defaultValueStr, IValidator_sptr validator, const unsigned int direction)
 
 PropertyWithValue (std::string name, TYPE defaultValue, const unsigned int direction)
 
 PropertyWithValue (std::string name, TYPE defaultValue, IValidator_sptr validator=IValidator_sptr(new NullValidator), const unsigned int direction=Direction::Input)
 
virtual void replaceValidator (IValidator_sptr newValidator)
 
MANTID_KERNEL_DLL void saveProperty (::NeXus::File *file)
 
MANTID_KERNEL_DLL void saveProperty (::NeXus::File *file)
 
MANTID_KERNEL_DLL void saveProperty (::NeXus::File *file)
 
MANTID_KERNEL_DLL void saveProperty (::NeXus::File *file)
 
MANTID_KERNEL_DLL void saveProperty (::NeXus::File *file)
 
MANTID_KERNEL_DLL void saveProperty (::NeXus::File *file)
 
MANTID_KERNEL_DLL void saveProperty (::NeXus::File *file)
 
MANTID_KERNEL_DLL void saveProperty (::NeXus::File *file)
 
MANTID_KERNEL_DLL void saveProperty (::NeXus::File *file)
 
void saveProperty (::NeXus::File *file) override
 
std::string setDataItem (const std::shared_ptr< DataItem > &data) override
 Set the value of the property via a DataItem pointer. More...
 
std::string setValue (const std::string &value) override
 Set the value of the property via a string. More...
 
std::string setValueFromJson (const Json::Value &value) override
 Set the value of the property via a Json object. More...
 
int size () const override
 Return the size of this property. More...
 
std::string value () const override
 Returns the value of the property as a string. More...
 
Json::Value valueAsJson () const override
 Returns the value of the property as a Json::Value. More...
 
std::string valueAsPrettyStr (const size_t maxLength=0, const bool collapseLists=true) const override
 Returns the value of the property as a pretty printed string. More...
 
- Public Member Functions inherited from Mantid::Kernel::Property
virtual std::vector< std::string > allowedValues () const
 Returns the set of valid values for this property, if such a set exists. More...
 
bool autoTrim () const
 Returns if the property is set to automatically trim string unput values of whitespace. More...
 
void clearSettings ()
 Deletes the PropertySettings object contained. More...
 
virtual Propertyclone () const =0
 'Virtual copy constructor' More...
 
virtual const PropertyHistory createHistory () const
 Create a PropertyHistory object representing the current state of the Property. More...
 
void createTemporaryValue ()
 Create a temporary value for this property. More...
 
unsigned int direction () const
 returns the direction of the property More...
 
const std::string & documentation () const
 Get the property's documentation string. More...
 
virtual void filterByTime (const Types::Core::DateAndTime &start, const Types::Core::DateAndTime &stop)
 Filter out a property by time. More...
 
virtual std::string getDefault () const =0
 Get the default value for the property which is the value the property was initialised with. More...
 
const std::string & getGroup ()
 
virtual size_t getMemorySize () const
 
IPropertySettingsgetSettings ()
 
bool hasTemporaryValue () const
 Property is using a temporary value for this property. More...
 
virtual bool isDefault () const =0
 Overriden function that returns if property has the same value that it was initialised with, if applicable. More...
 
virtual bool isMultipleSelectionAllowed ()
 Is Multiple Selection Allowed. More...
 
virtual std::string isValid () const
 Overridden function that checks whether the property, if not overriden returns "". More...
 
virtual bool isValueSerializable () const
 Whether the string returned by value() can be used for serialization. More...
 
virtual Propertymerge (Property *)
 Just returns the property (*this) unless overridden. More...
 
const std::string & name () const
 Get the property's name. More...
 
virtual Propertyoperator+= (Property const *rhs)=0
 Add to this. More...
 
bool remember () const
 Whether to save input values. More...
 
virtual void saveProperty (::NeXus::File *)
 
void setAutoTrim (const bool &setting)
 Sets if the property is set to automatically trim string unput values of whitespace. More...
 
virtual std::string setDataItem (const std::shared_ptr< DataItem > &)=0
 Set the value of the property via a DataItem pointer. More...
 
void setDocumentation (const std::string &documentation)
 Sets the user level description of the property. More...
 
void setGroup (const std::string &group)
 Set the group this property belongs to. More...
 
void setRemember (bool)
 Set wheter to remeber this property input. More...
 
void setSettings (std::unique_ptr< IPropertySettings > settings)
 Set the PropertySettings object. More...
 
virtual void setUnits (const std::string &unit)
 Sets the units of the property, as a string. More...
 
virtual std::string setValue (const std::string &)=0
 Set the value of the property via a string. More...
 
virtual std::string setValueFromJson (const Json::Value &)=0
 Set the value of the property via a Json object. More...
 
virtual std::string setValueFromProperty (const Property &right)=0
 Set the value of the property via a reference to another property. More...
 
virtual int size () const
 Return the size of this property. More...
 
virtual void splitByTime (std::vector< SplittingInterval > &splitter, std::vector< Property * > outputs, bool isProtonCharge=true) const
 Split a property by time. More...
 
const std::string type () const
 Returns the type of the property as a string. More...
 
const std::type_info * type_info () const
 Get the property type_info. More...
 
virtual const std::string & units () const
 Returns the units of the property, if any, as a string. More...
 
virtual std::string value () const =0
 Returns the value of the property as a string. More...
 
virtual Json::Value valueAsJson () const =0
 Returns the value of the property as a Json::Value. More...
 
virtual std::string valueAsPrettyStr (const size_t maxLength=0, const bool collapseLists=true) const
 Returns the value of the property as a pretty printed string. More...
 
virtual ~Property ()
 Virtual destructor. More...
 
- Public Member Functions inherited from Mantid::API::IWorkspaceProperty
virtual void clear ()=0
 Clear the stored pointer. More...
 
virtual Workspace_sptr getWorkspace () const =0
 Get a pointer to the workspace. More...
 
virtual bool isLocking () const =0
 Will the workspace be locked when starting an algorithm? More...
 
virtual bool isOptional () const =0
 Is the input workspace property optional (can be blank)? More...
 
virtual void setIsMasterRank (bool isMasterRank)=0
 Sets a flag indicating whether this is the master rank in MPI builds. More...
 
virtual bool store ()=0
 Store a workspace into the AnalysisDataService. More...
 
virtual ~IWorkspaceProperty ()=default
 Virtual destructor. More...
 

Private Member Functions

void clear () override
 Clear the stored pointer. More...
 
std::string isOptionalWs () const
 
std::string isValidGroup (const std::shared_ptr< WorkspaceGroup > &wsGroup) const
 
std::string isValidOutputWs () const
 
void retrieveWorkspaceFromADS ()
 

Private Attributes

std::string m_initialWSName
 The name of the workspace that the this this object was created for. More...
 
bool m_isMasterRank {true}
 
LockMode::Type m_locking
 A flag indicating whether the workspace should be read or write-locked when an algorithm begins. More...
 
PropertyMode::Type m_optional
 A flag indicating whether the property should be considered optional. More...
 
std::string m_workspaceName
 The name of the workspace (as used by the AnalysisDataService) More...
 

Static Private Attributes

static Kernel::Logger g_log
 for access to logging streams More...
 

Additional Inherited Members

- Protected Member Functions inherited from Mantid::Kernel::Property
 Property (const Property &right)
 Copy constructor. More...
 
 Property (std::string name, const std::type_info &type, const unsigned int &direction=Direction::Input)
 Constructor. More...
 
- Protected Attributes inherited from Mantid::Kernel::PropertyWithValue< TYPE >
TYPE m_initialValue
 the property's default value which is also its initial value More...
 
TYPE m_value
 The value of the property. More...
 
- Protected Attributes inherited from Mantid::Kernel::Property
std::string m_name
 The name of the property. More...
 

Detailed Description

template<typename TYPE = MatrixWorkspace>
class Mantid::API::WorkspaceProperty< TYPE >

A property class for workspaces.

Inherits from PropertyWithValue, with the value being a pointer to the workspace type given to the WorkspaceProperty constructor. This kind of property also holds the name of the workspace (as used by the AnalysisDataService) and an indication of whether it is an input or output to an algorithm (or both).

The pointers to the workspaces are fetched from the ADS when the properties are validated (i.e. when the PropertyManager::validateProperties() method calls isValid() ). Pointers to output workspaces are also fetched, if they exist, and can then be used within an algorithm. (An example of when this might be useful is if the user wants to write the output into the same workspace as is used for input - this avoids creating a new workspace and the overwriting the old one at the end.)

Author
Russell Taylor, Tessella Support Services plc
Date
10/12/2007

Definition at line 55 of file WorkspaceProperty.h.

Constructor & Destructor Documentation

◆ WorkspaceProperty() [1/4]

template<typename TYPE = MatrixWorkspace>
Mantid::API::WorkspaceProperty< TYPE >::WorkspaceProperty ( const std::string &  name,
const std::string &  wsName,
const unsigned int  direction,
const Kernel::IValidator_sptr validator = Kernel::IValidator_sptr(new Kernel::NullValidator) 
)
explicit

◆ WorkspaceProperty() [2/4]

template<typename TYPE = MatrixWorkspace>
Mantid::API::WorkspaceProperty< TYPE >::WorkspaceProperty ( const std::string &  name,
const std::string &  wsName,
const unsigned int  direction,
const PropertyMode::Type  optional,
const Kernel::IValidator_sptr validator = Kernel::IValidator_sptr(new Kernel::NullValidator) 
)
explicit

◆ WorkspaceProperty() [3/4]

template<typename TYPE = MatrixWorkspace>
Mantid::API::WorkspaceProperty< TYPE >::WorkspaceProperty ( const std::string &  name,
const std::string &  wsName,
const unsigned int  direction,
const PropertyMode::Type  optional,
const LockMode::Type  locking,
const Kernel::IValidator_sptr validator = Kernel::IValidator_sptr(new Kernel::NullValidator) 
)
explicit

◆ WorkspaceProperty() [4/4]

template<typename TYPE = MatrixWorkspace>
Mantid::API::WorkspaceProperty< TYPE >::WorkspaceProperty ( const WorkspaceProperty< TYPE > &  right)

Member Function Documentation

◆ allowedValues()

template<typename TYPE = MatrixWorkspace>
std::vector< std::string > Mantid::API::WorkspaceProperty< TYPE >::allowedValues ( ) const
overridevirtual

Returns the set of valid values for this property, if such a set exists.

If not, it returns an empty set.

Returns
the set of valid values for this property or an empty set

Reimplemented from Mantid::Kernel::Property.

◆ clear()

template<typename TYPE = MatrixWorkspace>
void Mantid::API::WorkspaceProperty< TYPE >::clear ( )
overrideprivatevirtual

Clear the stored pointer.

Implements Mantid::API::IWorkspaceProperty.

◆ clone()

template<typename TYPE = MatrixWorkspace>
WorkspaceProperty< TYPE > * Mantid::API::WorkspaceProperty< TYPE >::clone ( ) const
overridevirtual

'Virtual copy constructor'

Implements Mantid::Kernel::Property.

◆ createHistory()

template<typename TYPE = MatrixWorkspace>
const Kernel::PropertyHistory Mantid::API::WorkspaceProperty< TYPE >::createHistory ( ) const
overridevirtual

Create a PropertyHistory object representing the current state of the Property.

Reimplemented from Mantid::Kernel::Property.

◆ getDefault()

template<typename TYPE = MatrixWorkspace>
std::string Mantid::API::WorkspaceProperty< TYPE >::getDefault ( ) const
overridevirtual

Get the default value for the property which is the value the property was initialised with.

Implements Mantid::Kernel::Property.

◆ getWorkspace()

template<typename TYPE = MatrixWorkspace>
Workspace_sptr Mantid::API::WorkspaceProperty< TYPE >::getWorkspace ( ) const
overridevirtual

Get a pointer to the workspace.

Implements Mantid::API::IWorkspaceProperty.

Referenced by Mantid::API::Algorithm::checkGroups().

◆ isDefault()

template<typename TYPE = MatrixWorkspace>
bool Mantid::API::WorkspaceProperty< TYPE >::isDefault ( ) const
overridevirtual

Overriden function that returns if property has the same value that it was initialised with, if applicable.

Implements Mantid::Kernel::Property.

◆ isLocking()

template<typename TYPE = MatrixWorkspace>
bool Mantid::API::WorkspaceProperty< TYPE >::isLocking ( ) const
overridevirtual

Will the workspace be locked when starting an algorithm?

Implements Mantid::API::IWorkspaceProperty.

◆ isOptional()

template<typename TYPE = MatrixWorkspace>
bool Mantid::API::WorkspaceProperty< TYPE >::isOptional ( ) const
overridevirtual

Is the input workspace property optional (can be blank)?

Implements Mantid::API::IWorkspaceProperty.

Referenced by Mantid::PythonInterface::WorkspacePropertyExporter< WorkspaceType >::define().

◆ isOptionalWs()

template<typename TYPE = MatrixWorkspace>
std::string Mantid::API::WorkspaceProperty< TYPE >::isOptionalWs ( ) const
private

◆ isValid()

template<typename TYPE = MatrixWorkspace>
std::string Mantid::API::WorkspaceProperty< TYPE >::isValid ( ) const
overridevirtual

Overridden function that checks whether the property, if not overriden returns "".

Overridden functions checks whether the property has a valid value.

Returns
empty string ""

Reimplemented from Mantid::Kernel::Property.

◆ isValidGroup()

template<typename TYPE = MatrixWorkspace>
std::string Mantid::API::WorkspaceProperty< TYPE >::isValidGroup ( const std::shared_ptr< WorkspaceGroup > &  wsGroup) const
private

◆ isValidOutputWs()

template<typename TYPE = MatrixWorkspace>
std::string Mantid::API::WorkspaceProperty< TYPE >::isValidOutputWs ( ) const
private

◆ isValueSerializable()

template<typename TYPE = MatrixWorkspace>
bool Mantid::API::WorkspaceProperty< TYPE >::isValueSerializable ( ) const
overridevirtual

Whether the string returned by value() can be used for serialization.

Reimplemented from Mantid::Kernel::Property.

◆ operator+=()

template<typename TYPE = MatrixWorkspace>
WorkspaceProperty & Mantid::API::WorkspaceProperty< TYPE >::operator+= ( Kernel::Property const *  rhs)
overridevirtual

Add to this.

Implements Mantid::Kernel::Property.

◆ operator=() [1/2]

template<typename TYPE = MatrixWorkspace>
WorkspaceProperty & Mantid::API::WorkspaceProperty< TYPE >::operator= ( const std::shared_ptr< TYPE > &  value)
override

◆ operator=() [2/2]

template<typename TYPE = MatrixWorkspace>
WorkspaceProperty & Mantid::API::WorkspaceProperty< TYPE >::operator= ( const WorkspaceProperty< TYPE > &  right)

◆ retrieveWorkspaceFromADS()

template<typename TYPE = MatrixWorkspace>
void Mantid::API::WorkspaceProperty< TYPE >::retrieveWorkspaceFromADS ( )
private

◆ setDataItem()

template<typename TYPE = MatrixWorkspace>
std::string Mantid::API::WorkspaceProperty< TYPE >::setDataItem ( const std::shared_ptr< Kernel::DataItem > &  )
overridevirtual

Set the value of the property via a DataItem pointer.

If the value is unacceptable the value is not changed but a string is returned

Implements Mantid::Kernel::Property.

◆ setIsMasterRank()

template<typename TYPE = MatrixWorkspace>
void Mantid::API::WorkspaceProperty< TYPE >::setIsMasterRank ( bool  isMasterRank)
overridevirtual

Sets a flag indicating whether this is the master rank in MPI builds.

Implements Mantid::API::IWorkspaceProperty.

◆ setValue()

template<typename TYPE = MatrixWorkspace>
std::string Mantid::API::WorkspaceProperty< TYPE >::setValue ( const std::string &  )
overridevirtual

Set the value of the property via a string.

If the value is unacceptable the value is not changed but a string is returned

Implements Mantid::Kernel::Property.

◆ setValueFromJson()

template<typename TYPE = MatrixWorkspace>
std::string Mantid::API::WorkspaceProperty< TYPE >::setValueFromJson ( const Json::Value &  )
overridevirtual

Set the value of the property via a Json object.

If the value is unacceptable the value is not changed but a string is returned A const char * can be implicitly converted to both Json::Value and std::string so using simple setValue for both functions causes an abiguity error

Implements Mantid::Kernel::Property.

◆ store()

template<typename TYPE = MatrixWorkspace>
bool Mantid::API::WorkspaceProperty< TYPE >::store ( )
overridevirtual

Store a workspace into the AnalysisDataService.

Implements Mantid::API::IWorkspaceProperty.

◆ value()

template<typename TYPE = MatrixWorkspace>
std::string Mantid::API::WorkspaceProperty< TYPE >::value ( ) const
overridevirtual

Returns the value of the property as a string.

Implements Mantid::Kernel::Property.

Referenced by Mantid::CurveFitting::Algorithms::PlotPeakByLogValue::getMinimizerString().

◆ valueAsJson()

template<typename TYPE = MatrixWorkspace>
Json::Value Mantid::API::WorkspaceProperty< TYPE >::valueAsJson ( ) const
overridevirtual

Returns the value of the property as a Json::Value.

Implements Mantid::Kernel::Property.

Member Data Documentation

◆ g_log

template<typename TYPE >
Kernel::Logger Mantid::API::WorkspaceProperty< TYPE >::g_log
staticprivate

for access to logging streams

Definition at line 135 of file WorkspaceProperty.h.

◆ m_initialWSName

template<typename TYPE = MatrixWorkspace>
std::string Mantid::API::WorkspaceProperty< TYPE >::m_initialWSName
private

The name of the workspace that the this this object was created for.

Definition at line 126 of file WorkspaceProperty.h.

◆ m_isMasterRank

template<typename TYPE = MatrixWorkspace>
bool Mantid::API::WorkspaceProperty< TYPE >::m_isMasterRank {true}
private

Definition at line 137 of file WorkspaceProperty.h.

◆ m_locking

template<typename TYPE = MatrixWorkspace>
LockMode::Type Mantid::API::WorkspaceProperty< TYPE >::m_locking
private

A flag indicating whether the workspace should be read or write-locked when an algorithm begins.

Default=true.

Definition at line 132 of file WorkspaceProperty.h.

◆ m_optional

template<typename TYPE = MatrixWorkspace>
PropertyMode::Type Mantid::API::WorkspaceProperty< TYPE >::m_optional
private

A flag indicating whether the property should be considered optional.

Only matters for input workspaces

Definition at line 129 of file WorkspaceProperty.h.

◆ m_workspaceName

template<typename TYPE = MatrixWorkspace>
std::string Mantid::API::WorkspaceProperty< TYPE >::m_workspaceName
private

The name of the workspace (as used by the AnalysisDataService)

Definition at line 124 of file WorkspaceProperty.h.


The documentation for this class was generated from the following file: