protected function _doAction($action, EntityInterface $entity, $prop, $value = null)
    {
        switch ($action) {
            case 'remove':
                $entity->unsetProperty($prop);

                if (!empty($entity->_translations)) {
                    foreach ($entity->_translations as &$translation) {
                        $translation->unsetProperty($prop);
                    }
                }
                break;

            case 'set':
                if (!is_string($value) && is_callable($value)) {
                    $value = $value($entity);
                }
                $entity->set($prop, $value);

                if (!empty($entity->_translations)) {
                    foreach ($entity->_translations as &$translation) {
                        $translation->set($prop, $value);
                    }
                }
                break;

            case 'prepend':
                $entity->set($prop, $value . $entity->get($prop));

                if (!empty($entity->_translations)) {
                    foreach ($entity->_translations as &$translation) {
                        if (!is_null($translation->get($prop))) {
                            $translation->set($prop, $value . $translation->get($prop));
                        }
                    }
                }
                break;

            case 'append':
                $entity->set($prop, $entity->get($prop) . $value);

                if (!empty($entity->_translations)) {
                    foreach ($entity->_translations as &$translation) {
                        if (!is_null($translation->get($prop))) {
                            $translation->set($prop, $translation->get($prop) . $value);
                        }
                    }
                }
                break;
        }
    }
protected function _doAction($action, EntityInterface $entity, $prop, $value = null)
    {
        switch ($action) {
            case 'remove':
                $entity->unsetProperty($prop);

                if (!empty($entity->_translations)) {
                    foreach ($entity->_translations as &$translation) {
                        $translation->unsetProperty($prop);
                    }
                }
                break;

            case 'set':
                if (!is_string($value) && is_callable($value)) {
                    $value = $value($entity);
                }
                $entity->set($prop, $value);

                if (!empty($entity->_translations)) {
                    foreach ($entity->_translations as &$translation) {
                        $translation->set($prop, $value);
                    }
                }
                break;

            case 'prepend':
                $entity->set($prop, $value . $entity->get($prop));

                if (!empty($entity->_translations)) {
                    foreach ($entity->_translations as &$translation) {
                        if (!is_null($translation->get($prop))) {
                            $translation->set($prop, $value . $translation->get($prop));
                        }
                    }
                }
                break;

            case 'append':
                $entity->set($prop, $entity->get($prop) . $value);

                if (!empty($entity->_translations)) {
                    foreach ($entity->_translations as &$translation) {
                        if (!is_null($translation->get($prop))) {
                            $translation->set($prop, $translation->get($prop) . $value);
                        }
                    }
                }
                break;
        }
    }
protected function _doAction ( $ action , EntityInterface $ entity , $ prop , $ value = null ) { switch ( $ action ) { case 'remove' : $ entity -> unsetProperty ( $ prop ) ; if ( ! empty ( $ entity -> _translations ) ) { foreach ( $ entity -> _translations as & $ translation ) { $ translation -> unsetProperty ( $ prop ) ; } } break ; case 'set' : if ( ! is_string ( $ value ) && is_callable ( $ value ) ) { $ value = $ value ( $ entity ) ; } $ entity -> set ( $ prop , $ value ) ; if ( ! empty ( $ entity -> _translations ) ) { foreach ( $ entity -> _translations as & $ translation ) { $ translation -> set ( $ prop , $ value ) ; } } break ; case 'prepend' : $ entity -> set ( $ prop , $ value . $ entity -> get ( $ prop ) ) ; if ( ! empty ( $ entity -> _translations ) ) { foreach ( $ entity -> _translations as & $ translation ) { if ( ! is_null ( $ translation -> get ( $ prop ) ) ) { $ translation -> set ( $ prop , $ value . $ translation -> get ( $ prop ) ) ; } } } break ; case 'append' : $ entity -> set ( $ prop , $ entity -> get ( $ prop ) . $ value ) ; if ( ! empty ( $ entity -> _translations ) ) { foreach ( $ entity -> _translations as & $ translation ) { if ( ! is_null ( $ translation -> get ( $ prop ) ) ) { $ translation -> set ( $ prop , $ translation -> get ( $ prop ) . $ value ) ; } } } break ; } }
Perform specified action.

@param string $action Action to perform.
@param \Cake\Datasource\EntityInterface $entity Entity
@param string $prop Property name.
@param mixed $value Value to set or use for modification.
@return void
Perform specified action .