interface iAspect extends BaseIface {
static function FromNode(NodeIface $o) : self;
}
abstract class caAspect extends BaseClass implements iAspect {
// ++ CONFIG ++ //
protected function NodeClass() : string { return NodeClass::class; }
// -- CONFIG -- //
// ++ SETUP ++ //
public static function FromNode(NodeIface $o) : iAspect {
$oThis = new static;
$oThis->Node($o);
return $oThis;
}
// -- SETUP -- //
// ++ STRUCT ++ //
private $oNode = NULL;
protected function Node(?NodeIface $o=NULL) : NodeIface { return is_object($o) ? ($this->oNode = $o) : ($this->oNode ?? ($this->oNode = $this->NewNode())); }
abstract protected function NewNode() : NodeIface;
// -- STRUCT -- //
}