@Override protected String getCustomAttributeErrorMessage(AttributeFieldError attributeFieldError, ActionSupport action) { AttributeInterface attribute = attributeFieldError.getAttribute(); DateAttributeValidationRules valRule = (DateAttributeValidationRules) attribute.getValidationRules(); if (null != valRule) { String errorCode = attributeFieldError.getErrorCode(); if (errorCode.equals(FieldError.GREATER_THAN_ALLOWED)) { Date endValue = (valRule.getRangeEnd() != null) ? (Date) valRule.getRangeEnd() : this.getOtherAttributeValue(attribute, valRule.getRangeEndAttribute()); String[] args = {DateConverter.getFormattedDate(endValue, "dd/MM/yyyy")}; return action.getText("DateAttribute.fieldError.greaterValue", args); } else if (errorCode.equals(FieldError.LESS_THAN_ALLOWED)) { Date startValue = (valRule.getRangeStart() != null) ? (Date) valRule.getRangeStart() : this.getOtherAttributeValue(attribute, valRule.getRangeStartAttribute()); String[] args = {DateConverter.getFormattedDate(startValue, "dd/MM/yyyy")}; return action.getText("DateAttribute.fieldError.lessValue", args); } else if (errorCode.equals(FieldError.NOT_EQUALS_THAN_ALLOWED)) { Date value = (valRule.getValue() != null) ? (Date) valRule.getValue() : this.getOtherAttributeValue(attribute, valRule.getValueAttribute()); String[] args = {DateConverter.getFormattedDate(value, "dd/MM/yyyy")}; return action.getText("DateAttribute.fieldError.wrongValue", args); } } return action.getText(this.getInvalidAttributeMessage()); }
@Override protected void extractValidationRules(Element validationElement) { super.extractValidationRules(validationElement); Element valueElement = validationElement.getChild("value"); if (null != valueElement) { this.setValue(DateConverter.parseDate(valueElement.getText(), DATE_PATTERN)); this.setValueAttribute(valueElement.getAttributeValue("attribute")); } Element rangeStartElement = validationElement.getChild("rangestart"); if (null != rangeStartElement) { this.setRangeStart(DateConverter.parseDate(rangeStartElement.getText(), DATE_PATTERN)); this.setRangeStartAttribute(rangeStartElement.getAttributeValue("attribute")); } Element rangeEndElement = validationElement.getChild("rangeend"); if (null != rangeEndElement) { this.setRangeEnd(DateConverter.parseDate(rangeEndElement.getText(), DATE_PATTERN)); this.setRangeEndAttribute(rangeEndElement.getAttributeValue("attribute")); } }
@Override protected void fillJDOMConfigElement(Element configElement) { super.fillJDOMConfigElement(configElement); String toStringEqualValue = this.toStringValue(this.getValue()); this.insertJDOMConfigElement("value", this.getValueAttribute(), toStringEqualValue, configElement); String toStringStartValue = this.toStringValue(this.getRangeStart()); this.insertJDOMConfigElement("rangestart", this.getRangeStartAttribute(), toStringStartValue, configElement); String toStringEndValue = this.toStringValue(this.getRangeEnd()); this.insertJDOMConfigElement("rangeend", this.getRangeEndAttribute(), toStringEndValue, configElement); }
@Override public List<AttributeFieldError> validate(AttributeInterface attribute, AttributeTracer tracer, ILangManager langManager) { List<AttributeFieldError> errors = super.validate(attribute, tracer, langManager); if (this.isEmpty()) { return errors; return errors; Date startValue = (this.getRangeStart() != null) ? (Date) this.getRangeStart() : this.getOtherAttributeValue(attribute, this.getRangeStartAttribute()); if (null != startValue && attributeValue.before(startValue)) { AttributeFieldError error = new AttributeFieldError(attribute, FieldError.LESS_THAN_ALLOWED, tracer); errors.add(error); Date endValue = (this.getRangeEnd() != null) ? (Date) this.getRangeEnd() : this.getOtherAttributeValue(attribute, this.getRangeEndAttribute()); if (null != endValue && attributeValue.after(endValue)) { AttributeFieldError error = new AttributeFieldError(attribute, FieldError.GREATER_THAN_ALLOWED, tracer); errors.add(error); Date value = (this.getValue() != null) ? (Date) this.getValue() : this.getOtherAttributeValue(attribute, this.getValueAttribute()); if (null != value && !attributeValue.equals(value)) { AttributeFieldError error = new AttributeFieldError(attribute, FieldError.NOT_EQUALS_THAN_ALLOWED, tracer);
dateValRule.setRangeStart(this.extractDate(this.getRangeStartDate(), typeCode, attribute.getName(), AbstractEntityTypeValidator.ERRCODE_INVALID_DATE_RANGE_START, "entityType.attribute.date.invalidRangeStart", bindingResult)); dateValRule.setRangeEnd(this.extractDate(this.getRangeEndDate(), typeCode, attribute.getName(), AbstractEntityTypeValidator.ERRCODE_INVALID_DATE_RANGE_END, "entityType.attribute.date.invalidRangeEnd", bindingResult)); if (null != dateValRule.getRangeStart() && null != dateValRule.getRangeEnd() && ((Date) dateValRule.getRangeEnd()).before((Date) dateValRule.getRangeStart())) { this.addError(AbstractEntityTypeValidator.ERRCODE_INVALID_NUMBER_RANGE, bindingResult, new String[]{typeCode, attribute.getName()}, "entityType.attribute.date.invalidRange"); dateValRule.setValue(this.extractDate(this.getEqualDate(), typeCode, attribute.getName(), AbstractEntityTypeValidator.ERRCODE_INVALID_DATE_VALUE, "entityType.attribute.date.invalidValue", bindingResult)); dateValRule.setRangeStartAttribute(this.getRangeStartDateAttribute()); dateValRule.setRangeEndAttribute(this.getRangeEndDateAttribute()); dateValRule.setValueAttribute(this.getEqualDateAttribute()); } else if (attribute instanceof NumberAttribute) { NumberAttributeValidationRules nulValRule = (NumberAttributeValidationRules) validationRules;
@Override protected void fillJDOMConfigElement(Element configElement) { super.fillJDOMConfigElement(configElement); String toStringEqualValue = this.toStringValue(this.getValue()); this.insertJDOMConfigElement("value", this.getValueAttribute(), toStringEqualValue, configElement); String toStringStartValue = this.toStringValue(this.getRangeStart()); this.insertJDOMConfigElement("rangestart", this.getRangeStartAttribute(), toStringStartValue, configElement); String toStringEndValue = this.toStringValue(this.getRangeEnd()); this.insertJDOMConfigElement("rangeend", this.getRangeEndAttribute(), toStringEndValue, configElement); }
@Override public List<AttributeFieldError> validate(AttributeInterface attribute, AttributeTracer tracer, ILangManager langManager) { List<AttributeFieldError> errors = super.validate(attribute, tracer, langManager); if (this.isEmpty()) { return errors; return errors; Date startValue = (this.getRangeStart() != null) ? (Date) this.getRangeStart() : this.getOtherAttributeValue(attribute, this.getRangeStartAttribute()); if (null != startValue && attributeValue.before(startValue)) { AttributeFieldError error = new AttributeFieldError(attribute, FieldError.LESS_THAN_ALLOWED, tracer); errors.add(error); Date endValue = (this.getRangeEnd() != null) ? (Date) this.getRangeEnd() : this.getOtherAttributeValue(attribute, this.getRangeEndAttribute()); if (null != endValue && attributeValue.after(endValue)) { AttributeFieldError error = new AttributeFieldError(attribute, FieldError.GREATER_THAN_ALLOWED, tracer); errors.add(error); Date value = (this.getValue() != null) ? (Date) this.getValue() : this.getOtherAttributeValue(attribute, this.getValueAttribute()); if (null != value && !attributeValue.equals(value)) { AttributeFieldError error = new AttributeFieldError(attribute, FieldError.NOT_EQUALS_THAN_ALLOWED, tracer);
@Override protected String getCustomAttributeErrorMessage(AttributeFieldError attributeFieldError, ActionSupport action) { AttributeInterface attribute = attributeFieldError.getAttribute(); DateAttributeValidationRules valRule = (DateAttributeValidationRules) attribute.getValidationRules(); if (null != valRule) { String errorCode = attributeFieldError.getErrorCode(); if (errorCode.equals(FieldError.GREATER_THAN_ALLOWED)) { Date endValue = (valRule.getRangeEnd() != null) ? (Date) valRule.getRangeEnd() : this.getOtherAttributeValue(attribute, valRule.getRangeEndAttribute()); String[] args = {DateConverter.getFormattedDate(endValue, "dd/MM/yyyy")}; return action.getText("DateAttribute.fieldError.greaterValue", args); } else if (errorCode.equals(FieldError.LESS_THAN_ALLOWED)) { Date startValue = (valRule.getRangeStart() != null) ? (Date) valRule.getRangeStart() : this.getOtherAttributeValue(attribute, valRule.getRangeStartAttribute()); String[] args = {DateConverter.getFormattedDate(startValue, "dd/MM/yyyy")}; return action.getText("DateAttribute.fieldError.lessValue", args); } else if (errorCode.equals(FieldError.NOT_EQUALS_THAN_ALLOWED)) { Date value = (valRule.getValue() != null) ? (Date) valRule.getValue() : this.getOtherAttributeValue(attribute, valRule.getValueAttribute()); String[] args = {DateConverter.getFormattedDate(value, "dd/MM/yyyy")}; return action.getText("DateAttribute.fieldError.wrongValue", args); } } return action.getText(this.getInvalidAttributeMessage()); }
@Override protected void extractValidationRules(Element validationElement) { super.extractValidationRules(validationElement); Element valueElement = validationElement.getChild("value"); if (null != valueElement) { this.setValue(DateConverter.parseDate(valueElement.getText(), DATE_PATTERN)); this.setValueAttribute(valueElement.getAttributeValue("attribute")); } Element rangeStartElement = validationElement.getChild("rangestart"); if (null != rangeStartElement) { this.setRangeStart(DateConverter.parseDate(rangeStartElement.getText(), DATE_PATTERN)); this.setRangeStartAttribute(rangeStartElement.getAttributeValue("attribute")); } Element rangeEndElement = validationElement.getChild("rangeend"); if (null != rangeEndElement) { this.setRangeEnd(DateConverter.parseDate(rangeEndElement.getText(), DATE_PATTERN)); this.setRangeEndAttribute(rangeEndElement.getAttributeValue("attribute")); } }
@Override protected String getCustomAttributeErrorMessage(AttributeFieldError attributeFieldError, ActionSupport action) { AttributeInterface attribute = attributeFieldError.getAttribute(); DateAttributeValidationRules valRule = (DateAttributeValidationRules) attribute.getValidationRules(); if (null != valRule) { String errorCode = attributeFieldError.getErrorCode(); if (errorCode.equals(FieldError.GREATER_THAN_ALLOWED)) { Date endValue = (valRule.getRangeEnd() != null) ? (Date) valRule.getRangeEnd() : this.getOtherAttributeValue(attribute, valRule.getRangeEndAttribute()); String[] args = {DateConverter.getFormattedDate(endValue, "dd/MM/yyyy")}; return action.getText("DateAttribute.fieldError.greaterValue", args); } else if (errorCode.equals(FieldError.LESS_THAN_ALLOWED)) { Date startValue = (valRule.getRangeStart() != null) ? (Date) valRule.getRangeStart() : this.getOtherAttributeValue(attribute, valRule.getRangeStartAttribute()); String[] args = {DateConverter.getFormattedDate(startValue, "dd/MM/yyyy")}; return action.getText("DateAttribute.fieldError.lessValue", args); } else if (errorCode.equals(FieldError.NOT_EQUALS_THAN_ALLOWED)) { Date value = (valRule.getValue() != null) ? (Date) valRule.getValue() : this.getOtherAttributeValue(attribute, valRule.getValueAttribute()); String[] args = {DateConverter.getFormattedDate(value, "dd/MM/yyyy")}; return action.getText("DateAttribute.fieldError.wrongValue", args); } } return action.getText(this.getInvalidAttributeMessage()); }
dateValRule.setRangeEnd(this.getRangeEndDate()); dateValRule.setRangeStart(this.getRangeStartDate()); dateValRule.setValue(this.getEqualDate()); dateValRule.setRangeEndAttribute(this.getRangeEndDateAttribute()); dateValRule.setRangeStartAttribute(this.getRangeStartDateAttribute()); dateValRule.setValueAttribute(this.getEqualDateAttribute());
} else if (attribute instanceof DateAttribute) { DateAttributeValidationRules dateValRule = (DateAttributeValidationRules) validationRules; if (null != dateValRule.getRangeEnd()) { this.setRangeEndDate(DateConverter.getFormattedDate((Date) dateValRule.getRangeEnd(), SystemConstants.API_DATE_FORMAT)); if (null != dateValRule.getRangeEnd()) { this.setRangeStartDate(DateConverter.getFormattedDate((Date) dateValRule.getRangeStart(), SystemConstants.API_DATE_FORMAT)); if (null != dateValRule.getRangeEnd()) { this.setEqualDate(DateConverter.getFormattedDate((Date) dateValRule.getValue(), SystemConstants.API_DATE_FORMAT)); this.setRangeEndDateAttribute(dateValRule.getRangeEndAttribute()); this.setRangeStartDateAttribute(dateValRule.getRangeStartAttribute()); this.setEqualDateAttribute(dateValRule.getValueAttribute()); } else if (attribute instanceof NumberAttribute) { NumberAttributeValidationRules nulValRule = (NumberAttributeValidationRules) validationRules;
dateValRule.setRangeEnd(this.getRangeEndDate()); dateValRule.setRangeStart(this.getRangeStartDate()); dateValRule.setValue(this.getEqualDate()); dateValRule.setRangeEndAttribute(this.getRangeEndDateAttribute()); dateValRule.setRangeStartAttribute(this.getRangeStartDateAttribute()); dateValRule.setValueAttribute(this.getEqualDateAttribute());
this.setRangeEndDate((Date) dateValRule.getRangeEnd()); this.setRangeStartDate((Date) dateValRule.getRangeStart()); this.setEqualDate((Date) dateValRule.getValue()); this.setRangeEndDateAttribute(dateValRule.getRangeEndAttribute()); this.setRangeStartDateAttribute(dateValRule.getRangeStartAttribute()); this.setEqualDateAttribute(dateValRule.getValueAttribute());
dateValRule.setRangeEnd(this.getRangeEndDate()); dateValRule.setRangeStart(this.getRangeStartDate()); dateValRule.setValue(this.getEqualDate()); dateValRule.setRangeEndAttribute(this.getRangeEndDateAttribute()); dateValRule.setRangeStartAttribute(this.getRangeStartDateAttribute()); dateValRule.setValueAttribute(this.getEqualDateAttribute());
this.setRangeEndDate((Date) dateValRule.getRangeEnd()); this.setRangeStartDate((Date) dateValRule.getRangeStart()); this.setEqualDate((Date) dateValRule.getValue()); this.setRangeEndDateAttribute(dateValRule.getRangeEndAttribute()); this.setRangeStartDateAttribute(dateValRule.getRangeStartAttribute()); this.setEqualDateAttribute(dateValRule.getValueAttribute());
this.setRangeEndDate((Date) dateValRule.getRangeEnd()); this.setRangeStartDate((Date) dateValRule.getRangeStart()); this.setEqualDate((Date) dateValRule.getValue()); this.setRangeEndDateAttribute(dateValRule.getRangeEndAttribute()); this.setRangeStartDateAttribute(dateValRule.getRangeStartAttribute()); this.setEqualDateAttribute(dateValRule.getValueAttribute());