*/ class implementation_sqltablecluster implements interface_storage/**/ { /** * @var struct_sqltablecluster $subject * @author Christian Fraß */ private $subject; /** * @param struct_sqltable $subject * @author Christian Fraß */ private function __construct(struct_sqltablecluster $subject) {$this->subject = $subject;} /** * @return implementation_sqltablecluster * @author Christian Fraß */ public static function make( \alveolata\storage\implementation_sqltable $core, array $tight_supplements, array $loose_supplements, \Closure $assemble, \Closure $disperse ) : implementation_sqltablecluster { $subject = sqltablecluster_make( $core->get_subject(), \alveolata\map\map( $tight_supplements, function ($value) { return (new struct_sqltablecluster_tight_supplement( $value['target_table']->get_subject(), $value['core_id_column'], $value['include_own_id'], $value['exclude_core_id'] )); } ), \alveolata\map\map( $loose_supplements, function ($value) { return (new struct_sqltablecluster_loose_supplement( $value['target_table']->get_subject(), $value['edge_table']->get_subject(), $value['core_id_column'], $value['target_id_column'], )); } ), $assemble, $disperse ); return (new implementation_sqltablecluster($subject)); } /** * implementations * * @author Christian Fraß */ public function teardown() : void {sqltablecluster_teardown($this->subject);} public function setup() : void {sqltablecluster_setup($this->subject);} public function create($value) {return sqltablecluster_create($this->subject, $value);} public function update($key, $value) : void {sqltablecluster_update($this->subject, $key, $value);} public function delete($key) : void {sqltablecluster_delete($this->subject, $key);} public function read($key) {return sqltablecluster_read($this->subject, $key);} public function search(array $parameters) : array {return sqltablecluster_search($this->subject, $parameters);} } ?>