public static Rule CreateRule(RuleTypeEnum ruleType) { Rule rule = null; switch (ruleType) { case RuleTypeEnum.MAX_LENGTH_RULE: rule = new MaxLengthRule(); break; case RuleTypeEnum.MIN_LENGTH_RULE: rule = new MinLengthRule(); break; case RuleTypeEnum.MAX_VALUE_RULE: rule = new MaxValueRule(); break; case RuleTypeEnum.MIN_VALUE_RULE: rule = new MinValueRule(); break; case RuleTypeEnum.MAX_INPUT_NUM_RULE: rule = new MaxInputNumRule(); break; case RuleTypeEnum.MIN_INPUT_NUM_RULE: rule = new MinInputNumRule(); break; case RuleTypeEnum.VALUE_TYPE_RULE: rule = new ValueTypeRule(); break; case RuleTypeEnum.REQUIRED_RULE: rule = new RequiredRule(); break; case RuleTypeEnum.DISABLE_RULE: rule = new DisableRule(); break; case RuleTypeEnum.MAX_DECIMAL_DIGITS_RULE: rule = new MaxDecimalDigitsRule(); break; case RuleTypeEnum.MIN_DECIMAL_DIGITS_RULE: rule = new MinDecimalDigitsRule(); break; case RuleTypeEnum.REGEX_RULE: rule = new RegexRule(); break; case RuleTypeEnum.SET_RULE: rule = new SetRule(); break; case RuleTypeEnum.TIP_RULE: rule = new TipRule(); break; case RuleTypeEnum.DEV_TIP_RULE: rule = new DevTipRule(); break; case RuleTypeEnum.READ_ONLY_RULE: rule = new ReadOnlyRule(); break; case RuleTypeEnum.MAX_TARGET_SIZE_RULE: rule = new MaxTargetSizeRule(); break; case RuleTypeEnum.MIN_TARGET_SIZE_RULE: rule = new MinTargetSizeRule(); break; case RuleTypeEnum.MAX_IMAGE_SIZE_RULE: rule = new MaxImageSizeRule(); break; case RuleTypeEnum.MIN_IMAGE_SIZE_RULE: rule = new MinImageSizeRule(); break; } return(rule); }
/** * xml Element to Rule * @param ruleEle * @param fieldId * @return * @throws TopSchemaException */ private static Rule ElementToRule(XmlElement ruleEle, string fieldId) { if (ruleEle == null) { return(null); } String ruleName = XmlUtils.GetAttributeValue(ruleEle, "name"); if (StringUtil.IsEmpty(ruleName)) { throw new TopSchemaException(TopSchemaErrorCodeEnum.ERROR_CODE_31001, fieldId); } String ruleValue = XmlUtils.GetAttributeValue(ruleEle, "value"); if (StringUtil.IsEmpty(ruleValue)) { throw new TopSchemaException(TopSchemaErrorCodeEnum.ERROR_CODE_31002, fieldId); } Rule rule = null; RuleTypeEnum ruleEnum = RuleTypeEnumHelper.GetEnum(ruleName); if (ruleEnum != RuleTypeEnum.UNKNOWN) { rule = SchemaFactory.CreateRule(ruleEnum); } else { rule = SchemaFactory.CreateCustomRule(ruleName, ruleValue); } if (ruleName.Equals(RuleTypeEnumHelper.ToType(RuleTypeEnum.TIP_RULE)) && !StringUtil.IsEmpty(ruleValue)) { String url = XmlUtils.GetAttributeValue(ruleEle, "url"); ((TipRule)rule).Url = url; } if (ruleName.Equals(RuleTypeEnumHelper.ToType(RuleTypeEnum.DEV_TIP_RULE)) && !StringUtil.IsEmpty(ruleValue)) { String url = XmlUtils.GetAttributeValue(ruleEle, "url"); ((DevTipRule)rule).Url = url; } String unit = XmlUtils.GetAttributeValue(ruleEle, "unit"); if (ruleName.Equals(RuleTypeEnumHelper.ToType(RuleTypeEnum.MAX_TARGET_SIZE_RULE)) && !StringUtil.IsEmpty(ruleValue)) { MaxTargetSizeRule mtsRule = (MaxTargetSizeRule)rule; mtsRule.Unit = unit; } else if (ruleName.Equals(RuleTypeEnumHelper.ToType(RuleTypeEnum.MIN_TARGET_SIZE_RULE)) && !StringUtil.IsEmpty(ruleValue)) { MinTargetSizeRule misRule = (MinTargetSizeRule)rule; misRule.Unit = unit; } String exProperty = XmlUtils.GetAttributeValue(ruleEle, "exProperty"); if (!StringUtil.IsEmpty(exProperty)) { rule.ExProperty = exProperty; } rule.Value = ruleValue; XmlElement dependGroupEle = XmlUtils.GetChildElement(ruleEle, "depend-group"); DependGroup dependGroup = ElementToDependGroup(dependGroupEle, fieldId); rule.DependGroup = dependGroup; return(rule); }