protected function getApplicationCustomParamater($paramKey)
    {
        $paramValue = $this->applicationLocalized->getCustomParameter($paramKey);

        if (empty($paramValue) && $this->applicationObject) {
            $paramValue = $this->applicationObject->getCustomParameter($paramKey);
        }

        return $paramValue;
    }
    /**
     * @param string $key
     * @return mixed
     */
    public function getCustomParameter($key)
    {
        $custom = null;

        if (!empty($this->applicationLocalized) )
        {
            $custom = $this->applicationLocalized->getCustomParameter($key);
        }

        if ( $custom === false && !empty($this->applicationObject) )
        {
            $custom = $this->applicationObject->getCustomParameter($key);
        }

        return $custom;
    }
    /**
     * @return PermissionHandlerBase
     * @param ApplicationLocalized $applicationLocalized
     * @param ApplicationObject $applicationObject
     */
    public static function create(ApplicationLocalized $applicationLocalized, ApplicationObject $applicationObject)
    {
        $permissionHandlerIdentifier = $applicationLocalized->getCustomParameter('PermissionHandler');

        if (empty($permissionHandlerIdentifier))
        {
            $permissionHandlerIdentifier = $applicationObject->getCustomParameter('PermissionHandler');
        }

        if (empty($permissionHandlerIdentifier))
        {
            $permissionHandlerIdentifier = self::DEFAULT_PERMISSION_HANDLER;
        }

        /* @var $permissionHandler PermissionHandlerBase */
        $permissionHandler = new $permissionHandlerIdentifier();
        $permissionHandler->setApplicationObject($applicationObject);
        $permissionHandler->setApplicationLocalized($applicationLocalized);

        return $permissionHandler;
    }