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