##### Coverage Report - org.apache.commons.configuration.event.ConfigurationEvent

Classes in this File | Line Coverage | Branch Coverage | Complexity
ConfigurationEvent |
100% | 10/10
N/A | N/A
| 1.0;1

1 |  |
     /*
2 |  |
      * Licensed to the Apache Software Foundation (ASF) under one or more
3 |  |
      * contributor license agreements.  See the NOTICE file distributed with
4 |  |
      * this work for additional information regarding copyright ownership.
5 |  |
      * The ASF licenses this file to You under the Apache License, Version 2.0
6 |  |
      * (the "License"); you may not use this file except in compliance with
7 |  |
      * the License.  You may obtain a copy of the License at
8 |  |
      *
9 |  |
      *     http://www.apache.org/licenses/LICENSE-2.0
10 |  |
      *
11 |  |
      * Unless required by applicable law or agreed to in writing, software
12 |  |
      * distributed under the License is distributed on an "AS IS" BASIS,
13 |  |
      * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  |
      * See the License for the specific language governing permissions and
15 |  |
      * limitations under the License.
16 |  |
      */
17 |  |
     package org.apache.commons.configuration.event;
18 |  |
19 |  |
     import java.util.EventObject;
20 |  |
21 |  |
     /**
22 |  |
      * <p>
23 |  |
      * An event class for reporting updates on a configuration object.
24 |  |
      * </p>
25 |  |
      * <p>
26 |  |
      * Event objects of this type are used for &quot;raw&quot; events, i.e.
27 |  |
      * unfiltered modifications of any kind. A level with semantically higher events
28 |  |
      * (e.g. for property changes) may be built on top of this fundamental event
29 |  |
      * mechanism.
30 |  |
      * </p>
31 |  |
      * <p>
32 |  |
      * Each event can contain the following data:
33 |  |
      * <ul>
34 |  |
      * <li>A source object, which is usually the configuration object that was
35 |  |
      * modified.</li>
36 |  |
      * <li>The event's type. This is a numeric value that corresponds to constant
37 |  |
      * declarations in concrete configuration classes. It describes what exactly has
38 |  |
      * happended.</li>
39 |  |
      * <li>If available, the name of the property whose modification caused the
40 |  |
      * event.</li>
41 |  |
      * <li>If available, the value of the property that caused this event.</li>
42 |  |
      * <li>A flag whether this event was generated before or after the update of
43 |  |
      * the source configuration. A modification of a configuration typically causes
44 |  |
      * two events: one event before and one event after the modification is
45 |  |
      * performed. This allows event listeners to react at the correct point of time.</li>
46 |  |
      * </ul>
47 |  |
      * </p>
48 |  |
      * <p>
49 |  |
      * The following standard events are generated by typical configuration
50 |  |
      * implementations (the constants for the event types are defined in
51 |  |
      * <code>{@link org.apache.commons.configuration.AbstractConfiguration}</code>):
52 |  |
      * <dl>
53 |  |
      * <dt>EVENT_ADD_PROPERTY</dt>
54 |  |
      * <dd>This event is triggered for each call of the <code>addProperty()</code>
55 |  |
      * method of a configuration object. It contains the name of the property, to
56 |  |
      * which new data is added, and the value object that is added to this property
57 |  |
      * (this may be an array or a list if multiple values are added).</dd>
58 |  |
      * <dt>EVENT_SET_PROPERTY</dt>
59 |  |
      * <dd>Calling the <code>setProperty()</code> method triggers this event. The
60 |  |
      * event object stores the name of the affected property and its new value.</dd>
61 |  |
      * <dt>EVENT_CLEAR_PROPERTY</dt>
62 |  |
      * <dd>If a property is removed from a configuration (by calling the
63 |  |
      * <code>clearProperty()</code> method), an event of this type is fired. In
64 |  |
      * this case the event object only stores the name of the removed property, the
65 |  |
      * value is <b>null</b>.</dd>
66 |  |
      * <dt>EVENT_CLEAR</dt>
67 |  |
      * <dd>This event is fired when the whole configuration is cleared. The
68 |  |
      * corresponding event object contains no additional data.</dd>
69 |  |
      * </dl>
70 |  |
      * </p>
71 |  |
      *
72 |  |
      * @author <a
73 |  |
      * href="http://jakarta.apache.org/commons/configuration/team-list.html">Commons
74 |  |
      * Configuration team</a>
75 |  |
      * @version $Id: ConfigurationEvent.java 443105 2006-09-13 20:04:01Z oheger $
76 |  |
      * @since 1.3
77 |  |
      */
78 |  |
     public class ConfigurationEvent extends EventObject
79 |  |
     {
80 |  |
         /**
81 |  |
          * The serial version UID.
82 |  |
          */
83 |  |
         private static final long serialVersionUID = 3277238219073504136L;
84 |  |
85 |  |
         /** Stores the event type. */
86 |  |
         private int type;
87 |  |
88 |  |
         /** Stores the property name. */
89 |  |
         private String propertyName;
90 |  |
91 |  |
         /** Stores the property value. */
92 |  |
         private Object propertyValue;
93 |  |
94 |  |
         /** Stores the before update flag. */
95 |  |
         private boolean beforeUpdate;
96 |  |
97 |  |
         /**
98 |  |
          * Creates a new instance of <code>ConfigurationEvent</code> and
99 |  |
          * initializes it.
100 |  |
          *
101 |  |
          * @param source the event source
102 |  |
          * @param type the event's type
103 |  |
          * @param propertyName the name of the affected property
104 |  |
          * @param propertyValue the value of the affected property
105 |  |
          * @param beforeUpdate the before update flag
106 |  |
          */
107 |  |
         public ConfigurationEvent(Object source, int type, String propertyName,
108 |  |
                 Object propertyValue, boolean beforeUpdate)
109 |  |
         {
110 | 479 |
             super(source);
111 | 479 |
             this.type = type;
112 | 479 |
             this.propertyName = propertyName;
113 | 479 |
             this.propertyValue = propertyValue;
114 | 479 |
             this.beforeUpdate = beforeUpdate;
115 | 479 |
         }
116 |  |
117 |  |
         /**
118 |  |
          * Returns the name of the affected property. This can be <b>null</b> if no
119 |  |
          * property change has lead to this event.
120 |  |
          *
121 |  |
          * @return the name of the property
122 |  |
          */
123 |  |
         public String getPropertyName()
124 |  |
         {
125 | 285 |
             return propertyName;
126 |  |
         }
127 |  |
128 |  |
         /**
129 |  |
          * Returns the value of the affected property if available.
130 |  |
          *
131 |  |
          * @return the value of the property; can be <b>null</b>
132 |  |
          */
133 |  |
         public Object getPropertyValue()
134 |  |
         {
135 | 89 |
             return propertyValue;
136 |  |
         }
137 |  |
138 |  |
         /**
139 |  |
          * Returns the type of this event. This describes the update process that
140 |  |
          * caused this event.
141 |  |
          *
142 |  |
          * @return the event's type
143 |  |
          */
144 |  |
         public int getType()
145 |  |
         {
146 | 487 |
             return type;
147 |  |
         }
148 |  |
149 |  |
         /**
150 |  |
          * Returns a flag if this event was generated before or after an update.
151 |  |
          *
152 |  |
          * @return <b>true</b> if this event was generated before an update;
153 |  |
          * <b>false</b> otherwise
154 |  |
          */
155 |  |
         public boolean isBeforeUpdate()
156 |  |
         {
157 | 338 |
             return beforeUpdate;
158 |  |
         }
159 |  |
     }