blob: 5d44c4282f4ea90a1b72836dbb0ebcdf8146ded0 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
package test.cppuhelper.propertysetmixin.comp;
import com.sun.star.beans.Ambiguous;
import com.sun.star.beans.Defaulted;
import com.sun.star.beans.Optional;
import com.sun.star.beans.UnknownPropertyException;
import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.PropertyVetoException;
import com.sun.star.beans.XFastPropertySet;
import com.sun.star.beans.XPropertyAccess;
import com.sun.star.beans.XPropertyChangeListener;
import com.sun.star.beans.XPropertySet;
import com.sun.star.beans.XPropertySetInfo;
import com.sun.star.beans.XVetoableChangeListener;
import com.sun.star.comp.loader.FactoryHelper;
import com.sun.star.lang.WrappedTargetException;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XEventListener;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.lang.XSingleServiceFactory;
import com.sun.star.lib.uno.helper.WeakBase;
import com.sun.star.lib.uno.helper.PropertySetMixin;
import com.sun.star.registry.XRegistryKey;
import com.sun.star.uno.Any;
import com.sun.star.uno.IQueryInterface;
import com.sun.star.uno.Type;
import com.sun.star.uno.XComponentContext;
import test.cppuhelper.propertysetmixin.XSupplier;
import test.cppuhelper.propertysetmixin.XTest3;
public final class JavaSupplier extends WeakBase implements XSupplier {
public JavaSupplier(XComponentContext context) {
this.context = context;
}
public XComponent getEmpty1() { return new Empty1(); }
public XComponent getEmpty2() { return new Empty2(); }
public XTest3 getFull() { return new Full(); }
public static XSingleServiceFactory __getServiceFactory(
String implName, XMultiServiceFactory multiFactory, XRegistryKey regKey)
{
return implName.equals(implementationName)
? FactoryHelper.getServiceFactory(
JavaSupplier.class, serviceName, multiFactory, regKey)
: null;
}
private static final String implementationName
= JavaSupplier.class.getName();
private static final String serviceName
= "test.cppuhelper.propertysetmixin.JavaSupplier";
private final class Empty1 extends WeakBase implements XComponent {
public Empty1() {}
public void dispose() {
prop.dispose();
}
public void addEventListener(XEventListener listener) {}
public void removeEventListener(XEventListener listener) {}
private final PropertySetMixin prop = new PropertySetMixin(
context, this, new Type(XComponent.class), null);
}
private final class Empty2 extends WeakBase
implements XComponent, XPropertySet, XFastPropertySet, XPropertyAccess
{
public Empty2() {}
public void dispose() {
prop.dispose();
}
public void addEventListener(XEventListener listener) {}
public void removeEventListener(XEventListener listener) {}
public com.sun.star.beans.XPropertySetInfo getPropertySetInfo() {
return prop.getPropertySetInfo();
}
public void setPropertyValue(String propertyName, Object value)
throws UnknownPropertyException, PropertyVetoException,
com.sun.star.lang.IllegalArgumentException, WrappedTargetException
{
prop.setPropertyValue(propertyName, value);
}
public Object getPropertyValue(String propertyName)
throws UnknownPropertyException, WrappedTargetException
{
return prop.getPropertyValue(propertyName);
}
public void addPropertyChangeListener(
String propertyName, XPropertyChangeListener listener)
throws UnknownPropertyException, WrappedTargetException
{
prop.addPropertyChangeListener(propertyName, listener);
}
public void removePropertyChangeListener(
String propertyName, XPropertyChangeListener listener)
throws UnknownPropertyException, WrappedTargetException
{
prop.removePropertyChangeListener(propertyName, listener);
}
public void addVetoableChangeListener(
String propertyName, XVetoableChangeListener listener)
throws UnknownPropertyException, WrappedTargetException
{
prop.addVetoableChangeListener(propertyName, listener);
}
public void removeVetoableChangeListener(
String propertyName, XVetoableChangeListener listener)
throws UnknownPropertyException, WrappedTargetException
{
prop.removeVetoableChangeListener(propertyName, listener);
}
public void setFastPropertyValue(int handle, Object value)
throws UnknownPropertyException, PropertyVetoException,
com.sun.star.lang.IllegalArgumentException, WrappedTargetException
{
prop.setFastPropertyValue(handle, value);
}
public Object getFastPropertyValue(int handle)
throws UnknownPropertyException, WrappedTargetException
{
return prop.getFastPropertyValue(handle);
}
public PropertyValue[] getPropertyValues() {
return prop.getPropertyValues();
}
public void setPropertyValues(PropertyValue[] props)
throws UnknownPropertyException, PropertyVetoException,
com.sun.star.lang.IllegalArgumentException, WrappedTargetException
{
prop.setPropertyValues(props);
}
private final PropertySetMixin prop = new PropertySetMixin(
context, this, new Type(XComponent.class), null);
}
private final class Full extends WeakBase
implements XTest3, XPropertySet, XFastPropertySet, XPropertyAccess
{
public Full() {}
public synchronized int getFirst() {
return a1;
}
public void setFirst(int value) {
prop.prepareSet("First", null);
synchronized (this) {
a1 = value;
}
}
public synchronized Ambiguous getSecond()
throws UnknownPropertyException
{
return a2;
}
public void setSecond(Ambiguous value)
throws PropertyVetoException, UnknownPropertyException
{
PropertySetMixin.BoundListeners l
= new PropertySetMixin.BoundListeners();
prop.prepareSet(
"Second", Any.VOID,
(((Optional) ((Defaulted) value.Value).Value).IsPresent
? ((Optional) ((Defaulted) value.Value).Value).Value
: Any.VOID),
l);
synchronized (this) {
a2 = value;
}
l.notifyListeners();
}
public int getThird() throws UnknownPropertyException {
throw new UnknownPropertyException("Third", this);
}
public void setThird(int value) throws UnknownPropertyException {
throw new UnknownPropertyException("Third", this);
}
public int getFourth() throws UnknownPropertyException {
throw new UnknownPropertyException("Fourth", this);
}
public void setFourth(int value) throws UnknownPropertyException {
throw new UnknownPropertyException("Fourth", this);
}
public com.sun.star.beans.XPropertySetInfo getPropertySetInfo() {
return prop.getPropertySetInfo();
}
public void setPropertyValue(String propertyName, Object value)
throws UnknownPropertyException, PropertyVetoException,
com.sun.star.lang.IllegalArgumentException, WrappedTargetException
{
prop.setPropertyValue(propertyName, value);
}
public Object getPropertyValue(String propertyName)
throws UnknownPropertyException, WrappedTargetException
{
return prop.getPropertyValue(propertyName);
}
public void addPropertyChangeListener(
String propertyName, XPropertyChangeListener listener)
throws UnknownPropertyException, WrappedTargetException
{
prop.addPropertyChangeListener(propertyName, listener);
}
public void removePropertyChangeListener(
String propertyName, XPropertyChangeListener listener)
throws UnknownPropertyException, WrappedTargetException
{
prop.removePropertyChangeListener(propertyName, listener);
}
public void addVetoableChangeListener(
String propertyName, XVetoableChangeListener listener)
throws UnknownPropertyException, WrappedTargetException
{
prop.addVetoableChangeListener(propertyName, listener);
}
public void removeVetoableChangeListener(
String propertyName, XVetoableChangeListener listener)
throws UnknownPropertyException, WrappedTargetException
{
prop.removeVetoableChangeListener(propertyName, listener);
}
public void setFastPropertyValue(int handle, Object value)
throws UnknownPropertyException, PropertyVetoException,
com.sun.star.lang.IllegalArgumentException, WrappedTargetException
{
prop.setFastPropertyValue(handle, value);
}
public Object getFastPropertyValue(int handle)
throws UnknownPropertyException, WrappedTargetException
{
return prop.getFastPropertyValue(handle);
}
public PropertyValue[] getPropertyValues() {
return prop.getPropertyValues();
}
public void setPropertyValues(PropertyValue[] props)
throws UnknownPropertyException, PropertyVetoException,
com.sun.star.lang.IllegalArgumentException, WrappedTargetException
{
prop.setPropertyValues(props);
}
private final PropertySetMixin prop = new PropertySetMixin(
context, this, new Type(XTest3.class), new String[] { "Third" });
private int a1 = 0;
private Ambiguous a2 = new Ambiguous(
new Defaulted(new Optional(), true), false);
}
private final XComponentContext context;
}