1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 package org.apache.openoffice.comp.sdbc.dbtools.comphelper;
23 
24 import org.apache.openoffice.comp.sdbc.dbtools.comphelper.PropertySetAdapter.PropertyGetter;
25 import org.apache.openoffice.comp.sdbc.dbtools.comphelper.PropertySetAdapter.PropertySetter;
26 
27 import com.sun.star.beans.PropertyVetoException;
28 import com.sun.star.beans.UnknownPropertyException;
29 import com.sun.star.beans.XFastPropertySet;
30 import com.sun.star.beans.XMultiPropertySet;
31 import com.sun.star.beans.XPropertiesChangeListener;
32 import com.sun.star.beans.XPropertyChangeListener;
33 import com.sun.star.beans.XPropertySet;
34 import com.sun.star.beans.XPropertySetInfo;
35 import com.sun.star.beans.XVetoableChangeListener;
36 import com.sun.star.lang.IllegalArgumentException;
37 import com.sun.star.lang.WrappedTargetException;
38 import com.sun.star.lib.uno.helper.ComponentBase;
39 import com.sun.star.uno.Type;
40 
41 public class PropertySet extends ComponentBase implements XPropertySet, XFastPropertySet, XMultiPropertySet {
42     private final PropertySetAdapter impl;
43 
PropertySet()44     protected PropertySet() {
45         impl = new PropertySetAdapter(this, this);
46     }
47 
48     @Override
postDisposing()49     protected void postDisposing() {
50         impl.dispose();
51     }
52 
registerProperty(String propertyName, int handle, Type type, short attributes, PropertyGetter getter, PropertySetter setter)53     public void registerProperty(String propertyName, int handle, Type type, short attributes, PropertyGetter getter, PropertySetter setter) {
54         impl.registerProperty(propertyName, handle, type, attributes, getter, setter);
55     }
56 
registerProperty(String propertyName, Type type, short attributes, PropertyGetter getter, PropertySetter setter)57     public void registerProperty(String propertyName, Type type, short attributes, PropertyGetter getter, PropertySetter setter) {
58         impl.registerProperty(propertyName, type, attributes, getter, setter);
59     }
60 
addPropertyChangeListener(String propertyName, XPropertyChangeListener listener)61     public synchronized void addPropertyChangeListener(String propertyName, XPropertyChangeListener listener)
62             throws UnknownPropertyException, WrappedTargetException {
63         // only add listeners if you are not disposed
64         if (!isDisposed()) {
65             impl.addPropertyChangeListener(propertyName, listener);
66         }
67     }
68 
addVetoableChangeListener(String propertyName, XVetoableChangeListener listener)69     public synchronized void addVetoableChangeListener(String propertyName, XVetoableChangeListener listener)
70             throws UnknownPropertyException, WrappedTargetException {
71         // only add listeners if you are not disposed
72         if (!isDisposed()) {
73             impl.addVetoableChangeListener(propertyName, listener);
74         }
75     }
76 
addPropertiesChangeListener(String[] propertyNames, XPropertiesChangeListener listener)77     public synchronized void addPropertiesChangeListener(String[] propertyNames, XPropertiesChangeListener listener) {
78         // only add listeners if you are not disposed
79         if (!isDisposed()) {
80             impl.addPropertiesChangeListener(propertyNames, listener);
81         }
82     }
83 
getPropertySetInfo()84     public XPropertySetInfo getPropertySetInfo() {
85         return impl.getPropertySetInfo();
86     }
87 
getPropertyValue(String propertyName)88     public synchronized Object getPropertyValue(String propertyName) throws UnknownPropertyException, WrappedTargetException {
89         checkDisposed();
90         return impl.getPropertyValue(propertyName);
91     }
92 
93     @Override
getFastPropertyValue(int handle)94     public synchronized Object getFastPropertyValue(int handle) throws UnknownPropertyException, WrappedTargetException {
95         checkDisposed();
96         return impl.getFastPropertyValue(handle);
97     }
98 
getPropertyValues(String[] propertyNames)99     public synchronized Object[] getPropertyValues(String[] propertyNames) {
100         checkDisposed();
101         return impl.getPropertyValues(propertyNames);
102     }
103 
removePropertyChangeListener(String propertyName, XPropertyChangeListener listener)104     public synchronized void removePropertyChangeListener(String propertyName, XPropertyChangeListener listener)
105             throws UnknownPropertyException, WrappedTargetException {
106         // all listeners are automatically released in a dispose call
107         if (!isDisposed()) {
108             impl.removePropertyChangeListener(propertyName, listener);
109         }
110     }
111 
removeVetoableChangeListener(String propertyName, XVetoableChangeListener listener)112     public synchronized void removeVetoableChangeListener(String propertyName, XVetoableChangeListener listener)
113             throws UnknownPropertyException, WrappedTargetException {
114         // all listeners are automatically released in a dispose call
115         if (!isDisposed()) {
116             impl.removeVetoableChangeListener(propertyName, listener);
117         }
118     }
119 
removePropertiesChangeListener(XPropertiesChangeListener listener)120     public synchronized void removePropertiesChangeListener(XPropertiesChangeListener listener) {
121         // all listeners are automatically released in a dispose call
122         if (!isDisposed()) {
123             impl.removePropertiesChangeListener(listener);
124         }
125     }
126 
setPropertyValue(String propertyName, Object value)127     public synchronized void setPropertyValue(String propertyName, Object value)
128             throws UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException {
129         checkDisposed();
130         impl.setPropertyValue(propertyName, value);
131     }
132 
setFastPropertyValue(int handle, Object value)133     public synchronized void setFastPropertyValue(int handle, Object value)
134             throws UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException {
135         checkDisposed();
136         impl.setFastPropertyValue(handle, value);
137     }
138 
setPropertyValues(String[] propertyNames, Object[] values)139     public synchronized void setPropertyValues(String[] propertyNames, Object[] values)
140             throws PropertyVetoException, IllegalArgumentException, WrappedTargetException {
141         checkDisposed();
142         impl.setPropertyValues(propertyNames, values);
143     }
144 
firePropertiesChangeEvent(String[] propertyNames, XPropertiesChangeListener listener)145     public synchronized void firePropertiesChangeEvent(String[] propertyNames, XPropertiesChangeListener listener) {
146         checkDisposed();
147         impl.firePropertiesChangeEvent(propertyNames, listener);
148     }
149 }
150