1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski package test.cppuhelper.propertysetmixin.comp;
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski import com.sun.star.beans.Ambiguous;
27*b1cdbd2cSJim Jagielski import com.sun.star.beans.Defaulted;
28*b1cdbd2cSJim Jagielski import com.sun.star.beans.Optional;
29*b1cdbd2cSJim Jagielski import com.sun.star.beans.UnknownPropertyException;
30*b1cdbd2cSJim Jagielski import com.sun.star.beans.PropertyValue;
31*b1cdbd2cSJim Jagielski import com.sun.star.beans.PropertyVetoException;
32*b1cdbd2cSJim Jagielski import com.sun.star.beans.XFastPropertySet;
33*b1cdbd2cSJim Jagielski import com.sun.star.beans.XPropertyAccess;
34*b1cdbd2cSJim Jagielski import com.sun.star.beans.XPropertyChangeListener;
35*b1cdbd2cSJim Jagielski import com.sun.star.beans.XPropertySet;
36*b1cdbd2cSJim Jagielski import com.sun.star.beans.XPropertySetInfo;
37*b1cdbd2cSJim Jagielski import com.sun.star.beans.XVetoableChangeListener;
38*b1cdbd2cSJim Jagielski import com.sun.star.comp.loader.FactoryHelper;
39*b1cdbd2cSJim Jagielski import com.sun.star.lang.WrappedTargetException;
40*b1cdbd2cSJim Jagielski import com.sun.star.lang.XComponent;
41*b1cdbd2cSJim Jagielski import com.sun.star.lang.XEventListener;
42*b1cdbd2cSJim Jagielski import com.sun.star.lang.XMultiServiceFactory;
43*b1cdbd2cSJim Jagielski import com.sun.star.lang.XSingleServiceFactory;
44*b1cdbd2cSJim Jagielski import com.sun.star.lib.uno.helper.WeakBase;
45*b1cdbd2cSJim Jagielski import com.sun.star.lib.uno.helper.PropertySetMixin;
46*b1cdbd2cSJim Jagielski import com.sun.star.registry.XRegistryKey;
47*b1cdbd2cSJim Jagielski import com.sun.star.uno.Any;
48*b1cdbd2cSJim Jagielski import com.sun.star.uno.IQueryInterface;
49*b1cdbd2cSJim Jagielski import com.sun.star.uno.Type;
50*b1cdbd2cSJim Jagielski import com.sun.star.uno.XComponentContext;
51*b1cdbd2cSJim Jagielski import test.cppuhelper.propertysetmixin.XSupplier;
52*b1cdbd2cSJim Jagielski import test.cppuhelper.propertysetmixin.XTest3;
53*b1cdbd2cSJim Jagielski 
54*b1cdbd2cSJim Jagielski public final class JavaSupplier extends WeakBase implements XSupplier {
JavaSupplier(XComponentContext context)55*b1cdbd2cSJim Jagielski     public JavaSupplier(XComponentContext context) {
56*b1cdbd2cSJim Jagielski         this.context = context;
57*b1cdbd2cSJim Jagielski     }
58*b1cdbd2cSJim Jagielski 
getEmpty1()59*b1cdbd2cSJim Jagielski     public XComponent getEmpty1() { return new Empty1(); }
60*b1cdbd2cSJim Jagielski 
getEmpty2()61*b1cdbd2cSJim Jagielski     public XComponent getEmpty2() { return new Empty2(); }
62*b1cdbd2cSJim Jagielski 
getFull()63*b1cdbd2cSJim Jagielski     public XTest3 getFull() { return new Full(); }
64*b1cdbd2cSJim Jagielski 
__getServiceFactory( String implName, XMultiServiceFactory multiFactory, XRegistryKey regKey)65*b1cdbd2cSJim Jagielski     public static XSingleServiceFactory __getServiceFactory(
66*b1cdbd2cSJim Jagielski         String implName, XMultiServiceFactory multiFactory, XRegistryKey regKey)
67*b1cdbd2cSJim Jagielski     {
68*b1cdbd2cSJim Jagielski         return implName.equals(implementationName)
69*b1cdbd2cSJim Jagielski             ? FactoryHelper.getServiceFactory(
70*b1cdbd2cSJim Jagielski                 JavaSupplier.class, serviceName, multiFactory, regKey)
71*b1cdbd2cSJim Jagielski             : null;
72*b1cdbd2cSJim Jagielski     }
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski     private static final String implementationName
75*b1cdbd2cSJim Jagielski     = JavaSupplier.class.getName();
76*b1cdbd2cSJim Jagielski     private static final String serviceName
77*b1cdbd2cSJim Jagielski     = "test.cppuhelper.propertysetmixin.JavaSupplier";
78*b1cdbd2cSJim Jagielski 
79*b1cdbd2cSJim Jagielski     private final class Empty1 extends WeakBase implements XComponent {
Empty1()80*b1cdbd2cSJim Jagielski         public Empty1() {}
81*b1cdbd2cSJim Jagielski 
dispose()82*b1cdbd2cSJim Jagielski         public void dispose() {
83*b1cdbd2cSJim Jagielski             prop.dispose();
84*b1cdbd2cSJim Jagielski         }
85*b1cdbd2cSJim Jagielski 
addEventListener(XEventListener listener)86*b1cdbd2cSJim Jagielski         public void addEventListener(XEventListener listener) {}
87*b1cdbd2cSJim Jagielski 
removeEventListener(XEventListener listener)88*b1cdbd2cSJim Jagielski         public void removeEventListener(XEventListener listener) {}
89*b1cdbd2cSJim Jagielski 
90*b1cdbd2cSJim Jagielski         private final PropertySetMixin prop = new PropertySetMixin(
91*b1cdbd2cSJim Jagielski             context, this, new Type(XComponent.class), null);
92*b1cdbd2cSJim Jagielski     }
93*b1cdbd2cSJim Jagielski 
94*b1cdbd2cSJim Jagielski     private final class Empty2 extends WeakBase
95*b1cdbd2cSJim Jagielski         implements XComponent, XPropertySet, XFastPropertySet, XPropertyAccess
96*b1cdbd2cSJim Jagielski     {
Empty2()97*b1cdbd2cSJim Jagielski         public Empty2() {}
98*b1cdbd2cSJim Jagielski 
dispose()99*b1cdbd2cSJim Jagielski         public void dispose() {
100*b1cdbd2cSJim Jagielski             prop.dispose();
101*b1cdbd2cSJim Jagielski         }
102*b1cdbd2cSJim Jagielski 
addEventListener(XEventListener listener)103*b1cdbd2cSJim Jagielski         public void addEventListener(XEventListener listener) {}
104*b1cdbd2cSJim Jagielski 
removeEventListener(XEventListener listener)105*b1cdbd2cSJim Jagielski         public void removeEventListener(XEventListener listener) {}
106*b1cdbd2cSJim Jagielski 
getPropertySetInfo()107*b1cdbd2cSJim Jagielski         public com.sun.star.beans.XPropertySetInfo getPropertySetInfo() {
108*b1cdbd2cSJim Jagielski             return prop.getPropertySetInfo();
109*b1cdbd2cSJim Jagielski         }
110*b1cdbd2cSJim Jagielski 
setPropertyValue(String propertyName, Object value)111*b1cdbd2cSJim Jagielski         public void setPropertyValue(String propertyName, Object value)
112*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, PropertyVetoException,
113*b1cdbd2cSJim Jagielski             com.sun.star.lang.IllegalArgumentException, WrappedTargetException
114*b1cdbd2cSJim Jagielski         {
115*b1cdbd2cSJim Jagielski             prop.setPropertyValue(propertyName, value);
116*b1cdbd2cSJim Jagielski         }
117*b1cdbd2cSJim Jagielski 
getPropertyValue(String propertyName)118*b1cdbd2cSJim Jagielski         public Object getPropertyValue(String propertyName)
119*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, WrappedTargetException
120*b1cdbd2cSJim Jagielski         {
121*b1cdbd2cSJim Jagielski             return prop.getPropertyValue(propertyName);
122*b1cdbd2cSJim Jagielski         }
123*b1cdbd2cSJim Jagielski 
addPropertyChangeListener( String propertyName, XPropertyChangeListener listener)124*b1cdbd2cSJim Jagielski         public void addPropertyChangeListener(
125*b1cdbd2cSJim Jagielski             String propertyName, XPropertyChangeListener listener)
126*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, WrappedTargetException
127*b1cdbd2cSJim Jagielski         {
128*b1cdbd2cSJim Jagielski             prop.addPropertyChangeListener(propertyName, listener);
129*b1cdbd2cSJim Jagielski         }
130*b1cdbd2cSJim Jagielski 
removePropertyChangeListener( String propertyName, XPropertyChangeListener listener)131*b1cdbd2cSJim Jagielski         public void removePropertyChangeListener(
132*b1cdbd2cSJim Jagielski             String propertyName, XPropertyChangeListener listener)
133*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, WrappedTargetException
134*b1cdbd2cSJim Jagielski         {
135*b1cdbd2cSJim Jagielski             prop.removePropertyChangeListener(propertyName, listener);
136*b1cdbd2cSJim Jagielski         }
137*b1cdbd2cSJim Jagielski 
addVetoableChangeListener( String propertyName, XVetoableChangeListener listener)138*b1cdbd2cSJim Jagielski         public void addVetoableChangeListener(
139*b1cdbd2cSJim Jagielski             String propertyName, XVetoableChangeListener listener)
140*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, WrappedTargetException
141*b1cdbd2cSJim Jagielski         {
142*b1cdbd2cSJim Jagielski             prop.addVetoableChangeListener(propertyName, listener);
143*b1cdbd2cSJim Jagielski         }
144*b1cdbd2cSJim Jagielski 
removeVetoableChangeListener( String propertyName, XVetoableChangeListener listener)145*b1cdbd2cSJim Jagielski         public void removeVetoableChangeListener(
146*b1cdbd2cSJim Jagielski             String propertyName, XVetoableChangeListener listener)
147*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, WrappedTargetException
148*b1cdbd2cSJim Jagielski         {
149*b1cdbd2cSJim Jagielski             prop.removeVetoableChangeListener(propertyName, listener);
150*b1cdbd2cSJim Jagielski         }
151*b1cdbd2cSJim Jagielski 
setFastPropertyValue(int handle, Object value)152*b1cdbd2cSJim Jagielski         public void setFastPropertyValue(int handle, Object value)
153*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, PropertyVetoException,
154*b1cdbd2cSJim Jagielski             com.sun.star.lang.IllegalArgumentException, WrappedTargetException
155*b1cdbd2cSJim Jagielski         {
156*b1cdbd2cSJim Jagielski             prop.setFastPropertyValue(handle, value);
157*b1cdbd2cSJim Jagielski         }
158*b1cdbd2cSJim Jagielski 
getFastPropertyValue(int handle)159*b1cdbd2cSJim Jagielski         public Object getFastPropertyValue(int handle)
160*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, WrappedTargetException
161*b1cdbd2cSJim Jagielski         {
162*b1cdbd2cSJim Jagielski             return prop.getFastPropertyValue(handle);
163*b1cdbd2cSJim Jagielski         }
164*b1cdbd2cSJim Jagielski 
getPropertyValues()165*b1cdbd2cSJim Jagielski         public PropertyValue[] getPropertyValues() {
166*b1cdbd2cSJim Jagielski             return prop.getPropertyValues();
167*b1cdbd2cSJim Jagielski         }
168*b1cdbd2cSJim Jagielski 
setPropertyValues(PropertyValue[] props)169*b1cdbd2cSJim Jagielski         public void setPropertyValues(PropertyValue[] props)
170*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, PropertyVetoException,
171*b1cdbd2cSJim Jagielski             com.sun.star.lang.IllegalArgumentException, WrappedTargetException
172*b1cdbd2cSJim Jagielski         {
173*b1cdbd2cSJim Jagielski             prop.setPropertyValues(props);
174*b1cdbd2cSJim Jagielski         }
175*b1cdbd2cSJim Jagielski 
176*b1cdbd2cSJim Jagielski         private final PropertySetMixin prop = new PropertySetMixin(
177*b1cdbd2cSJim Jagielski             context, this, new Type(XComponent.class), null);
178*b1cdbd2cSJim Jagielski     }
179*b1cdbd2cSJim Jagielski 
180*b1cdbd2cSJim Jagielski     private final class Full extends WeakBase
181*b1cdbd2cSJim Jagielski         implements XTest3, XPropertySet, XFastPropertySet, XPropertyAccess
182*b1cdbd2cSJim Jagielski     {
Full()183*b1cdbd2cSJim Jagielski         public Full() {}
184*b1cdbd2cSJim Jagielski 
getFirst()185*b1cdbd2cSJim Jagielski         public synchronized int getFirst() {
186*b1cdbd2cSJim Jagielski             return a1;
187*b1cdbd2cSJim Jagielski         }
188*b1cdbd2cSJim Jagielski 
setFirst(int value)189*b1cdbd2cSJim Jagielski         public void setFirst(int value) {
190*b1cdbd2cSJim Jagielski             prop.prepareSet("First", null);
191*b1cdbd2cSJim Jagielski             synchronized (this) {
192*b1cdbd2cSJim Jagielski                 a1 = value;
193*b1cdbd2cSJim Jagielski             }
194*b1cdbd2cSJim Jagielski         }
195*b1cdbd2cSJim Jagielski 
getSecond()196*b1cdbd2cSJim Jagielski         public synchronized Ambiguous getSecond()
197*b1cdbd2cSJim Jagielski             throws UnknownPropertyException
198*b1cdbd2cSJim Jagielski         {
199*b1cdbd2cSJim Jagielski             return a2;
200*b1cdbd2cSJim Jagielski         }
201*b1cdbd2cSJim Jagielski 
setSecond(Ambiguous value)202*b1cdbd2cSJim Jagielski         public void setSecond(Ambiguous value)
203*b1cdbd2cSJim Jagielski             throws PropertyVetoException, UnknownPropertyException
204*b1cdbd2cSJim Jagielski         {
205*b1cdbd2cSJim Jagielski             PropertySetMixin.BoundListeners l
206*b1cdbd2cSJim Jagielski                 = new PropertySetMixin.BoundListeners();
207*b1cdbd2cSJim Jagielski             prop.prepareSet(
208*b1cdbd2cSJim Jagielski                 "Second", Any.VOID,
209*b1cdbd2cSJim Jagielski                 (((Optional) ((Defaulted) value.Value).Value).IsPresent
210*b1cdbd2cSJim Jagielski                  ? ((Optional) ((Defaulted) value.Value).Value).Value
211*b1cdbd2cSJim Jagielski                  : Any.VOID),
212*b1cdbd2cSJim Jagielski                 l);
213*b1cdbd2cSJim Jagielski             synchronized (this) {
214*b1cdbd2cSJim Jagielski                 a2 = value;
215*b1cdbd2cSJim Jagielski             }
216*b1cdbd2cSJim Jagielski             l.notifyListeners();
217*b1cdbd2cSJim Jagielski         }
218*b1cdbd2cSJim Jagielski 
getThird()219*b1cdbd2cSJim Jagielski         public int getThird() throws UnknownPropertyException {
220*b1cdbd2cSJim Jagielski             throw new UnknownPropertyException("Third", this);
221*b1cdbd2cSJim Jagielski         }
222*b1cdbd2cSJim Jagielski 
setThird(int value)223*b1cdbd2cSJim Jagielski         public void setThird(int value) throws UnknownPropertyException {
224*b1cdbd2cSJim Jagielski             throw new UnknownPropertyException("Third", this);
225*b1cdbd2cSJim Jagielski         }
226*b1cdbd2cSJim Jagielski 
getFourth()227*b1cdbd2cSJim Jagielski         public int getFourth() throws UnknownPropertyException {
228*b1cdbd2cSJim Jagielski             throw new UnknownPropertyException("Fourth", this);
229*b1cdbd2cSJim Jagielski         }
230*b1cdbd2cSJim Jagielski 
setFourth(int value)231*b1cdbd2cSJim Jagielski         public void setFourth(int value) throws UnknownPropertyException {
232*b1cdbd2cSJim Jagielski             throw new UnknownPropertyException("Fourth", this);
233*b1cdbd2cSJim Jagielski         }
234*b1cdbd2cSJim Jagielski 
getPropertySetInfo()235*b1cdbd2cSJim Jagielski         public com.sun.star.beans.XPropertySetInfo getPropertySetInfo() {
236*b1cdbd2cSJim Jagielski             return prop.getPropertySetInfo();
237*b1cdbd2cSJim Jagielski         }
238*b1cdbd2cSJim Jagielski 
setPropertyValue(String propertyName, Object value)239*b1cdbd2cSJim Jagielski         public void setPropertyValue(String propertyName, Object value)
240*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, PropertyVetoException,
241*b1cdbd2cSJim Jagielski             com.sun.star.lang.IllegalArgumentException, WrappedTargetException
242*b1cdbd2cSJim Jagielski         {
243*b1cdbd2cSJim Jagielski             prop.setPropertyValue(propertyName, value);
244*b1cdbd2cSJim Jagielski         }
245*b1cdbd2cSJim Jagielski 
getPropertyValue(String propertyName)246*b1cdbd2cSJim Jagielski         public Object getPropertyValue(String propertyName)
247*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, WrappedTargetException
248*b1cdbd2cSJim Jagielski         {
249*b1cdbd2cSJim Jagielski             return prop.getPropertyValue(propertyName);
250*b1cdbd2cSJim Jagielski         }
251*b1cdbd2cSJim Jagielski 
addPropertyChangeListener( String propertyName, XPropertyChangeListener listener)252*b1cdbd2cSJim Jagielski         public void addPropertyChangeListener(
253*b1cdbd2cSJim Jagielski             String propertyName, XPropertyChangeListener listener)
254*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, WrappedTargetException
255*b1cdbd2cSJim Jagielski         {
256*b1cdbd2cSJim Jagielski             prop.addPropertyChangeListener(propertyName, listener);
257*b1cdbd2cSJim Jagielski         }
258*b1cdbd2cSJim Jagielski 
removePropertyChangeListener( String propertyName, XPropertyChangeListener listener)259*b1cdbd2cSJim Jagielski         public void removePropertyChangeListener(
260*b1cdbd2cSJim Jagielski             String propertyName, XPropertyChangeListener listener)
261*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, WrappedTargetException
262*b1cdbd2cSJim Jagielski         {
263*b1cdbd2cSJim Jagielski             prop.removePropertyChangeListener(propertyName, listener);
264*b1cdbd2cSJim Jagielski         }
265*b1cdbd2cSJim Jagielski 
addVetoableChangeListener( String propertyName, XVetoableChangeListener listener)266*b1cdbd2cSJim Jagielski         public void addVetoableChangeListener(
267*b1cdbd2cSJim Jagielski             String propertyName, XVetoableChangeListener listener)
268*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, WrappedTargetException
269*b1cdbd2cSJim Jagielski         {
270*b1cdbd2cSJim Jagielski             prop.addVetoableChangeListener(propertyName, listener);
271*b1cdbd2cSJim Jagielski         }
272*b1cdbd2cSJim Jagielski 
removeVetoableChangeListener( String propertyName, XVetoableChangeListener listener)273*b1cdbd2cSJim Jagielski         public void removeVetoableChangeListener(
274*b1cdbd2cSJim Jagielski             String propertyName, XVetoableChangeListener listener)
275*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, WrappedTargetException
276*b1cdbd2cSJim Jagielski         {
277*b1cdbd2cSJim Jagielski             prop.removeVetoableChangeListener(propertyName, listener);
278*b1cdbd2cSJim Jagielski         }
279*b1cdbd2cSJim Jagielski 
setFastPropertyValue(int handle, Object value)280*b1cdbd2cSJim Jagielski         public void setFastPropertyValue(int handle, Object value)
281*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, PropertyVetoException,
282*b1cdbd2cSJim Jagielski             com.sun.star.lang.IllegalArgumentException, WrappedTargetException
283*b1cdbd2cSJim Jagielski         {
284*b1cdbd2cSJim Jagielski             prop.setFastPropertyValue(handle, value);
285*b1cdbd2cSJim Jagielski         }
286*b1cdbd2cSJim Jagielski 
getFastPropertyValue(int handle)287*b1cdbd2cSJim Jagielski         public Object getFastPropertyValue(int handle)
288*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, WrappedTargetException
289*b1cdbd2cSJim Jagielski         {
290*b1cdbd2cSJim Jagielski             return prop.getFastPropertyValue(handle);
291*b1cdbd2cSJim Jagielski         }
292*b1cdbd2cSJim Jagielski 
getPropertyValues()293*b1cdbd2cSJim Jagielski         public PropertyValue[] getPropertyValues() {
294*b1cdbd2cSJim Jagielski             return prop.getPropertyValues();
295*b1cdbd2cSJim Jagielski         }
296*b1cdbd2cSJim Jagielski 
setPropertyValues(PropertyValue[] props)297*b1cdbd2cSJim Jagielski         public void setPropertyValues(PropertyValue[] props)
298*b1cdbd2cSJim Jagielski             throws UnknownPropertyException, PropertyVetoException,
299*b1cdbd2cSJim Jagielski             com.sun.star.lang.IllegalArgumentException, WrappedTargetException
300*b1cdbd2cSJim Jagielski         {
301*b1cdbd2cSJim Jagielski             prop.setPropertyValues(props);
302*b1cdbd2cSJim Jagielski         }
303*b1cdbd2cSJim Jagielski 
304*b1cdbd2cSJim Jagielski         private final PropertySetMixin prop = new PropertySetMixin(
305*b1cdbd2cSJim Jagielski             context, this, new Type(XTest3.class), new String[] { "Third" });
306*b1cdbd2cSJim Jagielski 
307*b1cdbd2cSJim Jagielski         private int a1 = 0;
308*b1cdbd2cSJim Jagielski         private Ambiguous a2 = new Ambiguous(
309*b1cdbd2cSJim Jagielski             new Defaulted(new Optional(), true), false);
310*b1cdbd2cSJim Jagielski     }
311*b1cdbd2cSJim Jagielski 
312*b1cdbd2cSJim Jagielski     private final XComponentContext context;
313*b1cdbd2cSJim Jagielski }
314