001 /** 002 * 003 * Copyright 2003-2004 The Apache Software Foundation 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018 // 019 // This source code implements specifications defined by the Java 020 // Community Process. In order to remain compliant with the specification 021 // DO NOT add / change / or delete method signatures! 022 // 023 024 package javax.enterprise.deploy.model; 025 026 import java.beans.PropertyChangeEvent; 027 028 /** 029 * An Event class describing DDBeans being added to or removed from a J2EE 030 * application, or updated in place. 031 * 032 * @version $Rev: 46019 $ $Date: 2004-09-14 02:56:06 -0700 (Tue, 14 Sep 2004) $ 033 */ 034 public class XpathEvent { 035 /** 036 * Adding a DDBean 037 */ 038 public static final Object BEAN_ADDED = new Object(); 039 /** 040 * Removing a DDBean 041 */ 042 public static final Object BEAN_REMOVED = new Object(); 043 /** 044 * Changing a DDBean 045 */ 046 public static final Object BEAN_CHANGED = new Object(); 047 048 private PropertyChangeEvent pce; 049 private DDBean bean; 050 private Object type; 051 052 /** 053 * A description of a change in the DDBean tree. 054 * 055 * @param bean The DDBean being added, removed, or updated. 056 * @param type Indicates whether this is an add, remove, or update event. 057 */ 058 public XpathEvent(DDBean bean, Object type) { 059 this.bean = bean; 060 this.type = type; 061 } 062 063 /** 064 * Gets the underlying property change event, with new and 065 * old values. This is typically used for change events. 066 * It is not in the public API, but is included in the 067 * downloadable JSR-88 classes. 068 */ 069 public PropertyChangeEvent getChangeEvent() { 070 return pce; 071 } 072 073 /** 074 * Sets the underlying property change event, with new and 075 * old values. This is typically used for change events. 076 * It is not in the public API, but is included in the 077 * downloadable JSR-88 classes. 078 * 079 * @param pce The property change event that triggered this XpathEvent. 080 */ 081 public void setChangeEvent(PropertyChangeEvent pce) { 082 this.pce = pce; 083 } 084 085 /** 086 * The bean being added/removed/changed. 087 * 088 * @return The bean being added/removed/changed. 089 */ 090 public DDBean getBean() { 091 return bean; 092 } 093 094 /** 095 * Is this an add event? 096 * 097 * @return <code>true</code> if this is an add event. 098 */ 099 public boolean isAddEvent() { 100 return BEAN_ADDED == type; 101 } 102 103 /** 104 * Is this a remove event? 105 * 106 * @return <code>true</code> if this is a remove event. 107 */ 108 public boolean isRemoveEvent() { 109 return BEAN_REMOVED == type; 110 } 111 112 /** 113 * Is this a change event? 114 * 115 * @return <code>true</code> if this is a change event. 116 */ 117 public boolean isChangeEvent() { 118 return BEAN_CHANGED == type; 119 } 120 }