001    /*
002     * Copyright 2005,2009 Ivan SZKIBA
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    package org.ini4j.sample;
017    
018    import java.beans.PropertyChangeListener;
019    import java.beans.PropertyChangeSupport;
020    import java.beans.PropertyVetoException;
021    import java.beans.VetoableChangeListener;
022    import java.beans.VetoableChangeSupport;
023    
024    import java.net.URI;
025    
026    //<editor-fold defaultstate="collapsed" desc="apt documentation">
027    //|
028    //|                ---------------
029    //|                DwarfBean class
030    //|
031    //|DwarfBean class
032    //|
033    //</editor-fold>
034    //{
035    public class DwarfBean implements Dwarf
036    {
037        private int _age;
038        private int[] _fortuneNumber;
039        private double _height;
040        private String _homeDir;
041        private URI _homePage;
042        private final PropertyChangeSupport _pcSupport;
043        private final VetoableChangeSupport _vcSupport;
044        private double _weight;
045    
046        public DwarfBean()
047        {
048            _pcSupport = new PropertyChangeSupport(this);
049            _vcSupport = new VetoableChangeSupport(this);
050        }
051    
052        @Override public int getAge()
053        {
054            return _age;
055        }
056    
057        @Override public void setAge(int value)
058        {
059            int old = _age;
060    
061            _age = value;
062    
063            _pcSupport.firePropertyChange(PROP_AGE, old, value);
064        }
065    
066        @Override public int[] getFortuneNumber()
067        {
068            return _fortuneNumber;
069        }
070    
071        @Override public void setFortuneNumber(int[] value)
072        {
073            _fortuneNumber = value;
074        }
075    
076        @Override public double getHeight()
077        {
078            return _height;
079        }
080    
081        @Override public void setHeight(double value) throws PropertyVetoException
082        {
083            _vcSupport.fireVetoableChange(PROP_HEIGHT, _height, value);
084            double old = _height;
085    
086            _height = value;
087    
088            _pcSupport.firePropertyChange(PROP_HEIGHT, old, value);
089        }
090    
091        @Override public String getHomeDir()
092        {
093            return _homeDir;
094        }
095    
096        @Override public void setHomeDir(String value)
097        {
098            String old = _homeDir;
099    
100            _homeDir = value;
101    
102            _pcSupport.firePropertyChange(PROP_HOME_DIR, old, value);
103        }
104    
105        @Override public URI getHomePage()
106        {
107            return _homePage;
108        }
109    
110        @Override public void setHomePage(URI value)
111        {
112            URI old = _homePage;
113    
114            _homePage = value;
115    
116            _pcSupport.firePropertyChange(PROP_HOME_PAGE, old, value);
117        }
118    
119        @Override public double getWeight()
120        {
121            return _weight;
122        }
123    
124        @Override public void setWeight(double value)
125        {
126            double old = _weight;
127    
128            _weight = value;
129    
130            _pcSupport.firePropertyChange(PROP_WEIGHT, old, value);
131        }
132    
133        @Override public void addPropertyChangeListener(String property, PropertyChangeListener listener)
134        {
135            _pcSupport.addPropertyChangeListener(property, listener);
136        }
137    
138        @Override public void addVetoableChangeListener(String property, VetoableChangeListener listener)
139        {
140            _vcSupport.addVetoableChangeListener(property, listener);
141        }
142    
143        @Override public boolean hasAge()
144        {
145            return _age != 0;
146        }
147    
148        @Override public boolean hasHeight()
149        {
150            return _height != 0.0;
151        }
152    
153        @Override public boolean hasHomePage()
154        {
155            return _homePage != null;
156        }
157    
158        @Override public boolean hasWeight()
159        {
160            return _weight != 0.0;
161        }
162    
163        @Override public void removePropertyChangeListener(String property, PropertyChangeListener listener)
164        {
165            _pcSupport.removePropertyChangeListener(property, listener);
166        }
167    
168        @Override public void removeVetoableChangeListener(String property, VetoableChangeListener listener)
169        {
170            _vcSupport.removeVetoableChangeListener(property, listener);
171        }
172    }
173    //}