<?php

namespace ThurData\Servers\KerioEmail\Core\Interfaces;

/**
 *
 * @autor ThurData <info@thurdata.ch>
 */
interface BuilderInterface
{
    /**
     * @return Bool
     */
    public function isCreate();
    
    /**
     * @return $this
     */
    public function enableCreate();
    
    /**
     * @return $this
     */
    public function disableCreate();
    
    /**
     * @return string
     */
    public function getType();
    
    /**
     * @return \ThurData\Servers\KerioEmail\Core\DI\Objects\DiConteiner|null
     */
    public function findConteiner($name);
    
    /**
     * 
     * @param object $object
     * @param string $method
     * @param string $name
     * 
     * @return mixed
     */
    public function call($object, $method, $name);
    
    /**
     * @param string $name
     */
    public function getContainer($name);
}
