AbstractGriffonModel.java
001 /*
002  * Copyright 2010-2013 the original author or authors.
003  *
004  * Licensed under the Apache License, Version 2.0 (the "License");
005  * you may not use this file except in compliance with the License.
006  * You may obtain a copy of the License at
007  *
008  *      http://www.apache.org/licenses/LICENSE-2.0
009  *
010  * Unless required by applicable law or agreed to in writing, software
011  * distributed under the License is distributed on an "AS IS" BASIS,
012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013  * See the License for the specific language governing permissions and
014  * limitations under the License.
015  */
016 
017 package org.codehaus.griffon.runtime.core;
018 
019 import griffon.core.GriffonModel;
020 import griffon.core.GriffonModelClass;
021 
022 import java.beans.*;
023 
024 /**
025  * Base implementation of the GriffonModel interface.
026  *
027  @author Andres Almiray
028  @since 0.9.1
029  */
030 public abstract class AbstractGriffonModel extends AbstractGriffonMvcArtifact implements GriffonModel {
031     protected PropertyChangeSupport pcs;
032     protected VetoableChangeSupport vcs;
033 
034     protected String getArtifactType() {
035         return GriffonModelClass.TYPE;
036     }
037 
038     public AbstractGriffonModel() {
039         pcs = new PropertyChangeSupport(this);
040         vcs = new VetoableChangeSupport(this);
041     }
042 
043     public void addPropertyChangeListener(PropertyChangeListener listener) {
044         pcs.addPropertyChangeListener(listener);
045     }
046 
047     public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
048         pcs.addPropertyChangeListener(propertyName, listener);
049     }
050 
051     public void removePropertyChangeListener(PropertyChangeListener listener) {
052         pcs.removePropertyChangeListener(listener);
053     }
054 
055     public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
056         pcs.removePropertyChangeListener(propertyName, listener);
057     }
058 
059     public PropertyChangeListener[] getPropertyChangeListeners() {
060         return pcs.getPropertyChangeListeners();
061     }
062 
063     public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) {
064         return pcs.getPropertyChangeListeners(propertyName);
065     }
066 
067     protected void firePropertyChange(PropertyChangeEvent event) {
068         pcs.firePropertyChange(event);
069     }
070 
071     protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
072         pcs.firePropertyChange(propertyName, oldValue, newValue);
073     }
074 
075     public void addVetoableChangeListener(VetoableChangeListener listener) {
076         vcs.addVetoableChangeListener(listener);
077     }
078 
079     public void removeVetoableChangeListener(VetoableChangeListener listener) {
080         vcs.removeVetoableChangeListener(listener);
081     }
082 
083     public VetoableChangeListener[] getVetoableChangeListeners() {
084         return vcs.getVetoableChangeListeners();
085     }
086 
087     public void addVetoableChangeListener(String propertyName, VetoableChangeListener listener) {
088         vcs.addVetoableChangeListener(propertyName, listener);
089     }
090 
091     public void removeVetoableChangeListener(String propertyName, VetoableChangeListener listener) {
092         vcs.removeVetoableChangeListener(propertyName, listener);
093     }
094 
095     public VetoableChangeListener[] getVetoableChangeListeners(String propertyName) {
096         return vcs.getVetoableChangeListeners(propertyName);
097     }
098 
099     protected void fireVetoableChange(PropertyChangeEvent eventthrows PropertyVetoException {
100         vcs.fireVetoableChange(event);
101     }
102 
103     protected void fireVetoableChange(String propertyName, Object oldValue, Object newValuethrows PropertyVetoException {
104         vcs.fireVetoableChange(propertyName, oldValue, newValue);
105     }
106 }