SMTK  @SMTK_VERSION@
Simulation Modeling Tool Kit
Classes | Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
smtk::task::FillOutAttributes Class Reference

FillOutAttributes is a task that is incomplete until specified attributes are valid. More...

#include <FillOutAttributes.h>

Inheritance diagram for smtk::task::FillOutAttributes:
[legend]
Collaboration diagram for smtk::task::FillOutAttributes:
[legend]

Classes

struct  AttributeSet
 A predicate used to collect resources that fit a given role. More...
 
struct  ResourceAttributes
 Per-resource sets of validated attributes. More...
 

Public Types

using AttributeSetVisitor = std::function< smtk::common::Visit(AttributeSet &)>
 Signatures of functors that visit resources-by-role predicates.
 
using ConstAttributeSetVisitor = std::function< smtk::common::Visit(const AttributeSet &)>
 
- Public Types inherited from smtk::task::Task
enum  RelatedTasks { RelatedTasks::Depend, RelatedTasks::Child }
 The types of related tasks to visit. More...
 
using Observer = std::function< void(Task &, State, State)>
 A task's state changes may be observed.
 
using Observers = smtk::common::Observers< Observer >
 The collection of all observers of this task instance.
 
using Dependencies = std::map< WeakPtr, typename Observers::Key, std::owner_less< WeakPtr > >
 A task's dependencies are other tasks stored as weak pointers.
 
using PassedDependencies = std::set< Ptr >
 A task's dependencies are other tasks passed as shared pointers.
 
using Configuration = nlohmann::json
 Tasks are configured with arbitrary JSON objects, though this may change.
 
using Visitor = std::function< smtk::common::Visit(Task &)>
 Signature of functions invoked when visiting dependencies or children while allowing early termination.
 

Public Member Functions

 smtkTypeMacro (smtk::task::FillOutAttributes)
 
 smtkSuperclassMacro (smtk::task::Task)
 
 smtkCreateMacro (smtk::task::Task)
 
 FillOutAttributes (const Configuration &config, Manager &taskManager, const smtk::common::Managers::Ptr &managers=nullptr)
 
 FillOutAttributes (const Configuration &config, const PassedDependencies &dependencies, Manager &taskManager, const smtk::common::Managers::Ptr &managers=nullptr)
 
void configure (const Configuration &config)
 Parse configuration information to initialize this instance.
 
bool getViewData (smtk::common::TypeContainer &configuration) const override
 Provide the attribute resource(s) that the user should edit.
 
smtk::common::Visit visitAttributeSets (ConstAttributeSetVisitor visitor) const
 
smtk::common::Visit visitAttributeSets (AttributeSetVisitor visitor)
 
- Public Member Functions inherited from smtk::task::Task
 smtkTypeMacroBase (smtk::task::Task)
 
 smtkCreateMacro (smtk::task::Task)
 
 Task (const Configuration &config, const std::shared_ptr< smtk::common::Managers > &managers=nullptr)
 
 Task (const Configuration &config, Manager &taskManager, const std::shared_ptr< smtk::common::Managers > &managers=nullptr)
 
 Task (const Configuration &config, const PassedDependencies &dependencies, const std::shared_ptr< smtk::common::Managers > &managers=nullptr)
 
 Task (const Configuration &config, const PassedDependencies &dependencies, Manager &taskManager, const std::shared_ptr< smtk::common::Managers > &managers=nullptr)
 
smtk::string::Token id () const
 Return a unique, ephemeral identifier for this task. More...
 
void configure (const Configuration &config)
 A method called by all constructors passed Configuration information. More...
 
const std::string & title () const
 Return the title of the task (if one was provided).
 
void setTitle (const std::string &title)
 Set the title of the task to be presented to users. More...
 
const std::set< smtk::string::Token > & style () const
 Set/get style classes for the task. More...
 
bool addStyle (const smtk::string::Token &styleClass)
 
bool removeStyle (const smtk::string::Token &styleClass)
 
bool clearStyle ()
 
virtual State state () const
 Get the state. More...
 
bool markCompleted (bool completed)
 This public method allows user-interface components to indicate when the user marks a task complete (or unmarks it). More...
 
PassedDependencies dependencies () const
 Return the tasks which this task depends upon. More...
 
bool addDependency (const std::shared_ptr< Task > &dependency)
 Add a dependency. More...
 
template<typename Container >
bool addDependencies (const Container &tasks)
 Add a container of task-pointers as dependencies. More...
 
bool removeDependency (const std::shared_ptr< Task > &dependency)
 Remove a dependency. More...
 
template<typename Container >
bool removeDependencies (const Container &tasks)
 Remove a container of task-pointers as dependencies. More...
 
Taskparent () const
 Return a parent task if one exists; null otherwise.
 
virtual bool hasChildren () const
 Return whether or not the task has children. More...
 
virtual smtk::common::Visit visit (RelatedTasks relation, Visitor visitor) const
 Visit children. More...
 
Observersobservers ()
 Return this object's observers so other classes may insert themselves.
 
State internalState () const
 Return the internal state of the task. More...
 
Managermanager () const
 Return the tasks's manager (or null if unmanaged).
 

Protected Member Functions

bool initializeResources ()
 Initialize with a list of resources from manager in m_managers.
 
bool updateResourceEntry (smtk::attribute::Resource &resource, const AttributeSet &predicate, ResourceAttributes &entry)
 Update a single resource in a predicate.
 
int update (const smtk::operation::Operation &op, smtk::operation::EventType event, smtk::operation::Operation::Result result)
 Respond to operations that may change task state.
 
State computeInternalState () const
 Check m_resourcesByRole to see if all requirements are met.
 
bool hasRelevantInfomation (const smtk::resource::ManagerPtr &resourceManager, bool &foundResources) const
 Returns true if the task has relevant information in terms of its definitions and instances. More...
 
- Protected Member Functions inherited from smtk::task::Task
bool changeState (State previous, State next)
 Indicate the state has changed. More...
 
virtual bool updateState (Task &dependency, State prev, State next)
 Update our state because a dependent task has changed state or a subclass has marked the internal state as changed. More...
 
bool internalStateChanged (State next)
 Update the internal state, possibly transitioning the task's final state. More...
 

Static Protected Member Functions

static bool testValidity (const smtk::attribute::AttributePtr &attribute, ResourceAttributes &resourceAtts)
 Determine if an attribute needs to be tested for its validity. More...
 

Protected Attributes

smtk::common::Managers::Ptr m_managers
 
smtk::operation::Observers::Key m_observer
 
std::vector< AttributeSetm_attributeSets
 
- Protected Attributes inherited from smtk::task::Task
std::string m_title
 A task name to present to the user.
 
std::set< smtk::string::Tokenm_style
 The set of style classes for this task.
 
bool m_completed = false
 Whether the user has marked the task completed or not.
 
std::map< WeakPtr, Observers::Key, std::owner_less< WeakPtr > > m_dependencies
 A set of dependent tasks and the keys used to observe their state so that this task can update its state in response.
 
std::set< WeakPtr, std::owner_less< WeakPtr > > m_dependents
 Tasks upon which this task depends. More...
 
Observers m_observers
 The set of observers of this task's state.
 
Taskm_parent = nullptr
 If this task is the child of another task, this pointer references its parent. More...
 
std::weak_ptr< smtk::task::Managerm_manager
 If this task is being managed, this will refer to its manager.
 
smtk::string::Token m_id
 The unique identifier for this task.
 

Friends

class adaptor::ResourceAndRole
 

Detailed Description

FillOutAttributes is a task that is incomplete until specified attributes are valid.

This task accepts an input attribute resource (configured by a predecessor task or specified via a role) and observe an operation manager for operations. After each operation, attributes with a definition are validated. If all attributes identify are valid, the task becomes completable. Otherwise, the task will remain (or become) incomplete.

Member Function Documentation

◆ hasRelevantInfomation()

bool smtk::task::FillOutAttributes::hasRelevantInfomation ( const smtk::resource::ManagerPtr resourceManager,
bool &  foundResources 
) const
protected

Returns true if the task has relevant information in terms of its definitions and instances.

The task as relevant information if any of its definitions' or instances' isRelevant methods return true. It will also indicate if it found any of its required resources via the foundResources parameter.

◆ testValidity()

bool smtk::task::FillOutAttributes::testValidity ( const smtk::attribute::AttributePtr attribute,
ResourceAttributes resourceAtts 
)
staticprotected

Determine if an attribute needs to be tested for its validity.

Returns true if the attribute was not already contained in resourceAtts


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