registryupdateaction.java

来自「jetspeed源代码」· Java 代码 · 共 1,199 行 · 第 1/3 页

JAVA
1,199
字号
                                false);

                        ((BaseCachedParameter) parameter).setCachedOnName(
                            isCachedOnName);
                        ((BaseCachedParameter) parameter).setCachedOnValue(
                            isCachedOnValue);
                    }
                    else
                    {
                        parameter = new BaseParameter();
                    }

                    String parameterValue =
                        rundata.getParameters().getString("parameter_value");
                    boolean isHidden =
                        rundata.getParameters().getBoolean("is_hidden", false);
                    String description =
                        rundata.getParameters().getString("description");
                    String title = rundata.getParameters().getString("title");
                    String type = rundata.getParameters().getString("type");

                    parameter.setName(parameterName);
                    parameter.setValue(parameterValue);
                    parameter.setHidden(isHidden);
                    parameter.setDescription(description);
                    parameter.setTitle(title);
                    parameter.setType(type);

                    String securityRole =
                        rundata.getParameters().getString("security_role");
                    String securityRef =
                        rundata.getParameters().getString("security_ref");

                    if (securityRole != null && securityRole.length() > 0)
                    {
                        BaseSecurity paramSecurity = new BaseSecurity();
                        paramSecurity.setRole(securityRole);
                        parameter.setSecurity(paramSecurity);
                    }

                    if (securityRef != null && securityRef.length() > 0)
                    {
                        BaseSecurityReference paramSecurityRef =
                            new BaseSecurityReference();
                        paramSecurityRef.setParent(securityRef);
                        parameter.setSecurityRef(paramSecurityRef);
                    }

                    regEntry.addParameter(parameter);

                    Registry.addEntry(registry, regEntry);

                    clearUserData(rundata);
                }
                else
                {
                    DynamicURI duri =
                        redirect(
                            rundata,
                            SecurityConstants.PARAM_MODE_UPDATE,
                            SecurityConstants.MID_MISSING_PARAMETER);
                    rundata.setRedirectURI(duri.toString());

                    resetForm(rundata);
                }
            }
            else
            {
                DynamicURI duri =
                    redirect(
                        rundata,
                        SecurityConstants.PARAM_MODE_UPDATE,
                        SecurityConstants.MID_INVALID_ENTITY_NAME);
                rundata.setRedirectURI(duri.toString());

                resetForm(rundata);

                logger.error(
                    this.getClass().getName()
                        + ": Failed to find registry entry while trying to add a parameter");
            }
        }
        catch (Exception e)
        {
            DynamicURI duri =
                redirect(
                    rundata,
                    SecurityConstants.PARAM_MODE_UPDATE,
                    SecurityConstants.MID_INVALID_ENTITY_NAME);
            rundata.setRedirectURI(duri.toString());

            resetForm(rundata);

            logger.error("Exception", e);
        }
    }

    /**
     * Update parameters of a registry entry
     * @param rundata The turbine rundata context for this request.
     * @param context The velocity context for this request.
     * @throws Exception
     */
    public void doUpdateparameters(RunData rundata, Context context)
        throws Exception
    {
        try
        {
            String entryName =
                rundata.getParameters().getString(registryEntryName);
            PortletInfoEntry regEntry =
                (PortletInfoEntry) Registry.getEntry(registry, entryName);
            if (regEntry != null)
            {
                String[] parameters =
                    rundata.getParameters().getStrings("update_parameter_name");
                if (parameters != null && parameters.length > 0)
                {
                    for (int i = 0; i < parameters.length; i++)
                    {
                        String parameterName = parameters[i];
                        Parameter parameter = regEntry.getParameter(parameterName);
                        if (regEntry instanceof PortletEntry)
                        {
							if(parameter == null)
                            {
                                parameter = new BaseCachedParameter();
                                regEntry.addParameter(parameter);
                            }

                            boolean isCachedOnName =
                                rundata.getParameters().getBoolean(
                                    parameterName +".cached_on_name",
                                    false);
                            boolean isCachedOnValue =
                                rundata.getParameters().getBoolean(
                                    parameterName +".cached_on_value",
                                    false);

                            ((BaseCachedParameter) parameter).setCachedOnName(
                                isCachedOnName);
                            ((BaseCachedParameter) parameter).setCachedOnValue(
                                isCachedOnValue);
                        }
                        else if(parameter == null)
                        {
                            parameter = new BaseParameter();
                            regEntry.addParameter(parameter);
                        }
                        
                        String parameterValue =
                            rundata.getParameters().getString(
                                parameterName + ".parameter_value");
                        String description =
                            rundata.getParameters().getString(
                                parameterName + ".description");
                        String title =
                            rundata.getParameters().getString(
                                parameterName + ".title");
                        String securityRole =
                            rundata.getParameters().getString(
                                parameterName + ".security_role");
                        String securityRef =
                            rundata.getParameters().getString(
                                parameterName + ".security_ref");
                        String type = 
                            rundata.getParameters().getString(
                                parameterName + ".type");
                        boolean isHidden =
                            rundata.getParameters().getBoolean(
                                parameterName + ".is_hidden",
                                false);

                        parameter.setName(parameterName);
                        parameter.setValue(parameterValue);
                        parameter.setHidden(isHidden);
                        parameter.setDescription(description);
                        parameter.setTitle(title);
                        parameter.setType(type);

                        if (securityRef != null && securityRef.length() > 0)
                        {
                            BaseSecurityReference paramSecurityRef =
                                new BaseSecurityReference();
                            paramSecurityRef.setParent(securityRef);
                            parameter.setSecurityRef(paramSecurityRef);
                        }
                    }

                    Registry.addEntry(registry, regEntry);
                    clearUserData(rundata);
                }
                else
                {
                    DynamicURI duri =
                        redirect(
                            rundata,
                            SecurityConstants.PARAM_MODE_UPDATE,
                            SecurityConstants.MID_MISSING_PARAMETER);
                    rundata.setRedirectURI(duri.toString());

                    resetForm(rundata);
                }
            }
            else
            {
                DynamicURI duri =
                    redirect(
                        rundata,
                        SecurityConstants.PARAM_MODE_UPDATE,
                        SecurityConstants.MID_INVALID_ENTITY_NAME);
                rundata.setRedirectURI(duri.toString());
                resetForm(rundata);

                logger.error(
                    this.getClass().getName()
                        + ": Failed to find registry entry while trying to update parameters");
            }
        }
        catch (Exception e)
        {
            DynamicURI duri =
                redirect(
                    rundata,
                    SecurityConstants.PARAM_MODE_UPDATE,
                    SecurityConstants.MID_UPDATE_FAILED);
            rundata.setRedirectURI(duri.toString());

            resetForm(rundata);

            logger.error("Exception", e);
        }
    }

    /**
     * Update parameter's values of a registry entry
     * @param rundata The turbine rundata context for this request.
     * @param context The velocity context for this request.
     * @throws Exception
     */
    public void doUpdateparametervalues(RunData rundata, Context context)
        throws Exception
    {
        try
        {
            String entryName =
                rundata.getParameters().getString(registryEntryName);
            PortletInfoEntry regEntry =
                (PortletInfoEntry) Registry.getEntry(registry, entryName);
            if (regEntry != null)
            {
                String[] parameters =
                    rundata.getParameters().getStrings("update_parameter_name");
                if (parameters != null && parameters.length > 0)
                {
                    for (int i = 0; i < parameters.length; i++)
                    {
                        String parameterName = parameters[i];
                        String parameterValue =
                            rundata.getParameters().getString(
                                parameterName + ".parameter_value");

                        Parameter parameter =
                            regEntry.getParameter(parameterName);

                        if (parameter == null)
                        {
                            if (regEntry instanceof PortletEntry)
                            {
                                parameter = new BaseCachedParameter();
                            }
                            else
                            {
                                parameter = new BaseParameter();
                            }
                            
                            parameter.setName(parameterName);
                            regEntry.addParameter(parameter);
                        }

                        if (parameter != null)
                        {
                            parameter.setValue(parameterValue);
                        }
                    }

                    Registry.addEntry(registry, regEntry);
                    clearUserData(rundata);
                }
                else
                {

                    DynamicURI duri =
                        redirect(
                            rundata,
                            SecurityConstants.PARAM_MODE_UPDATE,
                            SecurityConstants.MID_MISSING_PARAMETER);
                    rundata.setRedirectURI(duri.toString());
                    resetForm(rundata);
                }
            }
            else
            {
                DynamicURI duri =
                    redirect(
                        rundata,
                        SecurityConstants.PARAM_MODE_UPDATE,
                        SecurityConstants.MID_INVALID_ENTITY_NAME);
                rundata.setRedirectURI(duri.toString());
                resetForm(rundata);

                logger.error(
                    this.getClass().getName()
                        + ": Failed to find registry entry while trying to update parameters");
            }
        }
        catch (Exception e)
        {
            DynamicURI duri =
                redirect(
                    rundata,
                    SecurityConstants.PARAM_MODE_UPDATE,
                    SecurityConstants.MID_UPDATE_FAILED);
            rundata.setRedirectURI(duri.toString());
            resetForm(rundata);

            logger.error("Exception", e);
        }
    }

    /**
     * Remove parameters from a registry entry
     * @param rundata The turbine rundata context for this request.
     * @param context The velocity context for this request.
     * @throws Exception
     */
    public void doRemoveparameters(RunData rundata, Context context)
        throws Exception
    {
        try
        {
            String entryName =
                rundata.getParameters().getString(registryEntryName);
            PortletInfoEntry portletEntry =
                (PortletInfoEntry) Registry.getEntry(registry, entryName);
            if (portletEntry != null)
            {
                String[] parameters =
                    rundata.getParameters().getStrings("parameter_name");
                if (parameters != null && parameters.length > 0)
                {
                    for (int i = 0; i < parameters.length; i++)
                    {
                        String parameterName = parameters[i];
                        portletEntry.removeParameter(parameterName);
                    }

                    Registry.addEntry(registry, portletEntry);
                    clearUserData(rundata);
                }
                else
                {
                    DynamicURI duri =
                        redirect(
                            rundata,
                            SecurityConstants.PARAM_MODE_UPDATE,
                            SecurityConstants.MID_MISSING_PARAMETER);
                    rundata.setRedirectURI(duri.toString());
                    resetForm(rundata);
                }
            }
            else
            {
                DynamicURI duri =
                    redirect(
                        rundata,
                        SecurityConstants.PARAM_MODE_UPDATE,
                        SecurityConstants.MID_INVALID_ENTITY_NAME);
                rundata.setRedirectURI(duri.toString());
                resetForm(rundata);

                logger.error(
                    this.getClass().getName()
                        + ": Failed to find registry entry while trying to remove parameters");
            }
        }
        catch (Exception e)
        {
            DynamicURI duri =
                redirect(
                    rundata,
                    SecurityConstants.PARAM_MODE_UPDATE,
                    SecurityConstants.MID_UPDATE_FAILED);
            rundata.setRedirectURI(duri.toString());
            resetForm(rundata);

            logger.error("Exception", e);
        }
    }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?