ICrugeField.php 1.46 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
<?php
/** ICrugeField

interfaz para inyectarle al ORDBM seleccionado los metodos a implementar relevante a campos
de perfil.

@author: Christian Salazar H. <christiansalazarh@gmail.com> @salazarchris74
@license protected/modules/cruge/LICENSE
 */
interface ICrugeField
{

    /*
        devuelve un objeto que implementa a ICrugeField
    */
    public static function loadModel($id);

    public static function loadModelByName($name);

    /**
    devuelve un array de objetos que implementan a ICrugeField
     */
    public static function listModels();

    /* entrega un array con los nombres de los atributos clave para orden,
        colocar de primero el primaryKey
    */
    public static function getSortFieldNames();

    public function getRequiredName();


    /*
        debido a que varios atributos aqui son sensibles los espacios entonces
        se les hara trim a todos en el evento de CModel::onBeforeValidate()
    */
    public function onBeforeValidate($event);

    /**
    retorna el nombre de la tabla
     */
    public function tableName();

    /*
        devuelve "el valor" del indice primario
    */
    public function getPrimaryKey();

    public function setFieldValue($value);

    public function getFieldValue();

    /*
        hace una validacion de este campo
    */
    public function validateField();

    /*
        pregunta si este campo es visible en listas de usuario del administrador
    */
    public function isVisibleInAdminList();
}