/************************************************************** * * 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. * *************************************************************/ import com.sun.star.uno.XComponentContext; import com.sun.star.lang.XTypeProvider; import com.sun.star.lang.XServiceInfo; import com.sun.star.test.XSomethingB; import com.sun.star.uno.Type; // TestComponentB implements all necessary interfaces self, this is only // for demonstration. More convenient is to use the impelmentation WeakBase or // ComponentBase, see implementation of TestComponentA. public class TestComponentB implements XTypeProvider, XServiceInfo, XSomethingB { static final String __serviceName= "com.sun.star.test.SomethingB"; static byte[] _implementationId; private XComponentContext context; private Object[] args; public TestComponentB(XComponentContext context, Object[] args) { this.context= context; this.args= args; } // XSomethingB public String methodTwo(String val) { if (args.length > 0 && args[0] instanceof String ) return (String) args[0]; return val; } //XTypeProvider public com.sun.star.uno.Type[] getTypes( ) { Type[] retValue= new Type[3]; retValue[0]= new Type( XServiceInfo.class); retValue[1]= new Type( XTypeProvider.class); retValue[2]= new Type( XSomethingB.class); return retValue; } //XTypeProvider synchronized public byte[] getImplementationId( ) { if (_implementationId == null) { _implementationId= new byte[16]; int hash = hashCode(); _implementationId[0] = (byte)(hash & 0xff); _implementationId[1] = (byte)((hash >>> 8) & 0xff); _implementationId[2] = (byte)((hash >>> 16) & 0xff); _implementationId[3] = (byte)((hash >>>24) & 0xff); } return _implementationId; } //XServiceInfo public String getImplementationName( ) { return getClass().getName(); } // XServiceInfo public boolean supportsService( /*IN*/String serviceName ) { if ( serviceName.equals( __serviceName)) return true; return false; } //XServiceInfo public String[] getSupportedServiceNames( ) { String[] retValue= new String[0]; retValue[0]= __serviceName; return retValue; } }