protected String generateMaintenanceUrl(HttpServletRequest request, DelegateRuleForm form) {
   return getApplicationBaseUrl()
       + "/kr/"
       + KRADConstants.MAINTENANCE_ACTION
       + "?"
       + KRADConstants.DISPATCH_REQUEST_PARAMETER
       + "="
       + KRADConstants.START_METHOD
       + "&"
       + KRADConstants.BUSINESS_OBJECT_CLASS_ATTRIBUTE
       + "="
       + RuleDelegationBo.class.getName()
       + "&"
       + WebRuleUtils.RESPONSIBILITY_ID_PARAM
       + "="
       + form.getParentResponsibilityId()
       + "&"
       + WebRuleUtils.RULE_TEMPLATE_ID_PARAM
       + "="
       + form.getParentRule().getRuleTemplate().getDelegationTemplateId()
       + "&"
       + WebRuleUtils.DOCUMENT_TYPE_NAME_PARAM
       + "="
       + form.getParentRule().getDocTypeName();
 }
  protected boolean validateCreateDelegateRule(DelegateRuleForm form) {
    if (form.getParentRule() == null) {
      GlobalVariables.getMessageMap().putError(PARENT_RULE_PROPERTY, PARENT_RULE_ERROR);
    } else {
      RuleTemplateBo ruleTemplate = form.getParentRule().getRuleTemplate();
      if (ruleTemplate == null || ruleTemplate.getDelegationTemplate() == null) {
        GlobalVariables.getMessageMap().putError(PARENT_RULE_PROPERTY, DELEGATE_RULE_INVALID_ERROR);
      }
    }
    if (form.getParentResponsibility() == null) {
      GlobalVariables.getMessageMap()
          .putError(PARENT_RESPONSIBILITY_PROPERTY, PARENT_RESPONSIBILITY_ERROR);
    }

    return GlobalVariables.getMessageMap().hasNoErrors();
  }