01: /*
02: * Copyright (C) 1999-2004 <A href="http://www-ist.massey.ac.nz/JBDietrich" target="_top">Jens Dietrich</a>
03: *
04: * This library is free software; you can redistribute it and/or
05: * modify it under the terms of the GNU Lesser General Public
06: * License as published by the Free Software Foundation; either
07: * version 2 of the License, or (at your option) any later version.
08: *
09: * This library is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12: * Lesser General Public License for more details.
13: *
14: * You should have received a copy of the GNU Lesser General Public
15: * License along with this library; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: */
18: package org.mandarax.kernel;
19:
20: import java.util.Collection;
21:
22: /**
23: * Event fired to notify listeners that a knowledge base has changed.
24: * @author <A href="http://www-ist.massey.ac.nz/JBDietrich" target="_top">Jens Dietrich</A>
25: * @version 3.4 <7 March 05>
26: * @since 1.0
27: */
28: public class KnowledgeBaseChangeEvent extends java.util.EventObject {
29:
30: public static int UNKNOWN = -1;
31: public static int CLAUSE_MOVED = 0;
32: public static int CLAUSE_REMOVED = 1;
33: public static int CLAUSE_ADDED = 2;
34: private Collection affectedClauses = null;
35: private int type = UNKNOWN;
36:
37: /**
38: * Constructor.
39: * @param source java.lang.Object
40: * @param aType int
41: */
42: public KnowledgeBaseChangeEvent(Object source, int aType) {
43: super (source);
44:
45: type = aType;
46: affectedClauses = new java.util.Vector();
47: }
48:
49: /**
50: * Constructor.
51: * @param aSource java.lang.Object
52: * @param aType int
53: * @param clause java.lang.Object
54: */
55: public KnowledgeBaseChangeEvent(Object aSource, int aType,
56: Object clause) {
57: this (aSource, aType);
58:
59: affectedClauses = new java.util.Vector(1);
60:
61: affectedClauses.add(clause);
62: }
63:
64: /**
65: * Constructor.
66: * @param aSource java.lang.Object
67: * @param aType int
68: * @param clauses java.util.Collection
69: */
70: public KnowledgeBaseChangeEvent(Object aSource, int aType,
71: Collection clauses) {
72: this (aSource, aType);
73:
74: affectedClauses = clauses;
75: }
76:
77: /**
78: * Get the clauses affected by the change.
79: * @return java.util.Collection
80: */
81: public Collection getAffectedClauses() {
82: return affectedClauses;
83: }
84:
85: /**
86: * Get the type.
87: * @return int
88: */
89: public int getType() {
90: return type;
91: }
92: }
|