001: /*
002: * Copyright (c) 2004 JETA Software, Inc. All rights reserved.
003: *
004: * Redistribution and use in source and binary forms, with or without modification,
005: * are permitted provided that the following conditions are met:
006: *
007: * o Redistributions of source code must retain the above copyright notice,
008: * this list of conditions and the following disclaimer.
009: *
010: * o Redistributions in binary form must reproduce the above copyright notice,
011: * this list of conditions and the following disclaimer in the documentation
012: * and/or other materials provided with the distribution.
013: *
014: * o Neither the name of JETA Software nor the names of its contributors may
015: * be used to endorse or promote products derived from this software without
016: * specific prior written permission.
017: *
018: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
019: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
020: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
021: * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
022: * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
023: * INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
024: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
025: * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
026: * INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
027: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
028: */
029:
030: package com.jeta.open.rules;
031:
032: /**
033: * Defines a result from a JETARule
034: *
035: * @author Jeff Tassin
036: */
037: public class RuleResult {
038: /**
039: * the result code
040: */
041: private int m_resultcode;
042:
043: /**
044: * The error message if this result is a FAIL_MESSAGE
045: */
046: private String m_message;
047:
048: /** rule result codes */
049: public final static int SUCCESS_ID = 0;
050: public final static int FAIL_MESSAGE_ID = -1;
051: /**
052: * fail code to indicate the the validator will handle showing the error
053: * message
054: */
055: public final static int FAIL_NO_MESSAGE_ID = -2;
056:
057: /** pre-defined rule result object */
058: public static final RuleResult SUCCESS = new RuleResult(SUCCESS_ID);
059: public static final RuleResult FAIL = new RuleResult(
060: FAIL_NO_MESSAGE_ID);
061:
062: /**
063: * ctor
064: */
065: public RuleResult(int code) {
066: m_resultcode = code;
067: assert ((code == SUCCESS_ID) || (code == FAIL_MESSAGE_ID) || (code == FAIL_NO_MESSAGE_ID));
068: }
069:
070: /**
071: * ctor Construct a ResultResult with a FAIL_MESSAGE code
072: */
073: public RuleResult(String msg) {
074: if (msg == null)
075: m_resultcode = SUCCESS_ID;
076: else
077: m_resultcode = FAIL_MESSAGE_ID;
078:
079: m_message = msg;
080: }
081:
082: public boolean equals(Object obj) {
083: if (obj == this )
084: return true;
085:
086: if (obj instanceof RuleResult) {
087: RuleResult rr = (RuleResult) obj;
088: return (m_resultcode == rr.m_resultcode);
089: } else {
090: return false;
091: }
092: }
093:
094: /**
095: * @return the result code
096: */
097: public int getCode() {
098: return m_resultcode;
099: }
100:
101: /**
102: * If this result is a FAIL_MESSAGE, then get the message
103: */
104: public String getMessage() {
105: return m_message;
106: }
107: }
|