+
+ /**
+ * Returns the action this node corresponds to.
+ */
+ const Action* action() const;
+
+ /**
+ * Execute this node, and hence the corresponding action.
+ * Sets the effects achieved.
+ *
+ * If _executed is true or _preconditions.size() > 0 this method will
+ * just return.
+ */
+ void execute();
+
+ /**
+ * Checks if this node has been executed or not.
+ */
+ bool executed() const;
+
+ /**
+ * Returns the effects that was achieved from execution.
+ */
+ const Literals& effects() const;
+
+ /**
+ * Satisfy a single condition.
+ */
+ bool satisfyCondition(std::string effect);
+
+ /**
+ * Satisfies a list of conditions.
+ */
+ bool satisfyConditions(const Literals& effects);
+
+ /**
+ * Returns all the children to this node.
+ */
+ const std::vector<Node*>& children() const;
+
+ /**
+ * Returns the unsatisfied preconditions.
+ */
+ const Preconditions& preconditions() const;