com.imsweb.validation.entities.RuleFailure Maven / Gradle / Ivy
/*
* Copyright (C) 2010 Information Management Services, Inc.
*/
package com.imsweb.validation.entities;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
/**
* This class represents a single rule failure returned by the validation engine.
*
* Created on Apr 5, 2011 by depryf
*/
public class RuleFailure {
/**
* Rule object (link to the parent).
*/
protected Rule _rule;
/**
* Failure message (for translated edits, it might not be the message defined by the edit itself since messages can dynamically be added).
*/
protected String _message;
/**
* Extra failure messages (used only by translated metafile edits); can be null or empty.
*/
protected List _extraErrorMessages;
/**
* Information messages (used only by translated metafile edits); can be null or empty.
*/
protected List _informationMessages;
/**
* Set of failing (formatted) properties
*/
protected Set _properties;
/**
* Identifier for the tumor that triggered this failure
*/
protected Long _tumorIdentifier;
/**
* Original Groovy exception (null if no exception happened)
*/
protected Throwable _groovyException;
/**
* The actual boolean result returned by the edit; it is possible for a translated edit to return true, but fail because the failing flag has been set
* through a call to a context method. This field can be used to detect that case and allow an accurate comparison between the GeneditsPlus results and
* the ones returned by this framework.
*/
protected Boolean _originalResult;
/**
* Default constructor. This constructor is inteded for testing only; it by-passes any nullity checking!
*
* Created on Mar 2, 2010 by depryf
*/
public RuleFailure() {
// this is NOT calling the other constructors, this is on purpose...
}
/**
* Constructor.
*
* Created on Mar 1, 2010 by depryf
* @param rule Rule, can't be null
* @param validatable Validatable, can't be null
*/
public RuleFailure(Rule rule, Validatable validatable) {
this(rule, rule.getMessage(), validatable);
}
/**
* Constructor.
*
* Created on Mar 1, 2010 by depryf
* @param rule Rule, can't be null
* @param message error message
* @param validatable Validatable, can't be null
*/
public RuleFailure(Rule rule, String message, Validatable validatable) {
this(rule, message, validatable, null);
}
/**
* Constructor.
*
* Created on Mar 1, 2010 by depryf
* @param rule Rule, can't be null
* @param message error message
* @param validatable Validatable, can't be null
*/
public RuleFailure(Rule rule, String message, Validatable validatable, Throwable groovyException) {
if (rule == null)
throw new RuntimeException("Can't build a RuleFailure from a null rule!");
if (validatable == null)
throw new RuntimeException("Can't build a RuleFailure from a null validatable!");
_rule = rule;
_message = message == null ? "" : message; // avoid NPE on message...
_properties = new HashSet<>(validatable.getPropertiesWithError());
_tumorIdentifier = validatable.getCurrentTumorId();
_groovyException = groovyException;
}
/**
* Getter for the rule.
*
* Created on Apr 5, 2011 by depryf
* @return the accociated Rule
*/
public Rule getRule() {
return _rule;
}
/**
* Setter for the rule.
*
* Created on Apr 5, 2011 by depryf
* @param rule the associated Rule
*/
public void setRule(Rule rule) {
_rule = rule;
}
/**
* Getter for the message.
*
* Created on Apr 5, 2011 by depryf
* @return the message
*/
public String getMessage() {
return _message;
}
/**
* Setter for the message.
*
* Created on Apr 5, 2011 by depryf
* @param message the message
*/
public void setMessage(String message) {
_message = message;
}
/**
* Setter for the properties.
*
* Created on Apr 5, 2011 by depryf
* @return the properties
*/
public Set getProperties() {
return _properties;
}
/**
* Getter for the properties.
*
* Created on Apr 5, 2011 by depryf
* @param properties the properties
*/
public void setProperties(Set properties) {
_properties = properties;
}
/**
* Getter for the tumor identifier.
*
* Created on Apr 5, 2011 by depryf
* @return tumor identifier
*/
public Long getTumorIdentifier() {
return _tumorIdentifier;
}
/**
* Setter for the tumor identifier.
*
* Created on Apr 5, 2011 by depryf
* @param tumorIdentifier tumor identifier
*/
public void setTumorIdentifier(Long tumorIdentifier) {
_tumorIdentifier = tumorIdentifier;
}
/**
* Getter for the groovy exception.
*
* Created on Apr 5, 2011 by depryf
* @return groovy exception, null of no exception happened
*/
public Throwable getGroovyException() {
return _groovyException;
}
/**
* Setter for the groovy exception.
*
* Created on Apr 5, 2011 by depryf
* @param groovyException the groovy exception
*/
public void setGroovyException(Throwable groovyException) {
_groovyException = groovyException;
}
/**
* Getter for the extra error messages
* @return list of extra error messages, can be null or empty
*/
public List getExtraErrorMessages() {
return _extraErrorMessages;
}
/**
* Setter for the extra error messages
* @param extraErrorMessages list of extra error messages to set
*/
public void setExtraErrorMessages(List extraErrorMessages) {
_extraErrorMessages = extraErrorMessages;
}
/**
* Getter for the information messages
* @return list of information messages, can be null or empty
*/
public List getInformationMessages() {
return _informationMessages;
}
/**
* Setter for the information messages
* @param informationMessages list of information messages to set
*/
public void setInformationMessages(List informationMessages) {
_informationMessages = informationMessages;
}
/**
* Getter for the original reslut
* @return the original result, can be null if the edit threw an exception and didn't return anything
*/
public Boolean getOriginalResult() {
return _originalResult;
}
/**
* Setter for the original result
* @param originalResult original result to set
*/
public void setOriginalResult(Boolean originalResult) {
_originalResult = originalResult;
}
@Override
public boolean equals(Object other) {
if (!(other instanceof RuleFailure))
return false;
RuleFailure otherResult = (RuleFailure)other;
return new EqualsBuilder().append(_rule, otherResult.getRule()).append(_properties, otherResult.getProperties()).isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder().append(_rule).append(_properties).toHashCode();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy