Select.php
1.12 KB
<?php
namespace ACA\MetaBox\Search\Factory;
use ACA\MetaBox\Column;
use ACA\MetaBox\Search;
use ACP\Search\Comparison;
final class Select extends Search\Factory implements Search\CloneableFactory, Search\TableStorageFactory {
public function create_table_storage( Column $column, Comparison $default ) {
/** @var Column\Select $column */
if ( $column->is_multiple() ) {
return new Search\Comparison\Table\MultiSelect( $default->get_operators(), $column->get_storage_table(), $column->get_meta_key(), $column->get_field_options() );
}
return new Search\Comparison\Table\Select( $default->get_operators(), $column->get_storage_table(), $column->get_meta_key(), $column->get_field_options() );
}
public function create_default( Column $column ) {
/** @var Column\Select $column */
return new Search\Comparison\Select( $column->get_meta_key(), $column->get_meta_type(), $column->get_field_options() );
}
public function create_cloneable( Column $column ) {
/** @var Column\Select $column */
return new Search\Comparison\MultiSelect( $column->get_meta_key(), $column->get_meta_type(), $column->get_field_options() );
}
}