diff options
author | Noel Grandin <noel@peralex.com> | 2016-06-06 14:21:20 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2016-06-07 08:49:31 +0000 |
commit | 970b0ebb67d4033d70795e586a26c7a695c14194 (patch) | |
tree | 3ef0fa7f436539415055089188ad2f028f24cbaa /ridljar | |
parent | f30aa6e51f7fe2fd3da47629de5a0dc13706e866 (diff) |
[API CHANGE] Drop deprecated I*Description interfaces
And make the fields of com.sun.star.uno.Type private
Change-Id: Ied7698b4157460e9726f271092c92b6b382239fd
Reviewed-on: https://gerrit.libreoffice.org/25971
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'ridljar')
-rw-r--r-- | ridljar/Jar_ridl.mk | 4 | ||||
-rw-r--r-- | ridljar/com/sun/star/lib/uno/typedesc/FieldDescription.java | 23 | ||||
-rw-r--r-- | ridljar/com/sun/star/lib/uno/typedesc/MemberDescriptionHelper.java | 9 | ||||
-rw-r--r-- | ridljar/com/sun/star/lib/uno/typedesc/MethodDescription.java | 53 | ||||
-rw-r--r-- | ridljar/com/sun/star/lib/uno/typedesc/TypeDescription.java | 215 | ||||
-rw-r--r-- | ridljar/com/sun/star/uno/IFieldDescription.java | 46 | ||||
-rw-r--r-- | ridljar/com/sun/star/uno/IMemberDescription.java | 61 | ||||
-rw-r--r-- | ridljar/com/sun/star/uno/IMethodDescription.java | 73 | ||||
-rw-r--r-- | ridljar/com/sun/star/uno/ITypeDescription.java | 174 | ||||
-rw-r--r-- | ridljar/com/sun/star/uno/Type.java | 21 | ||||
-rw-r--r-- | ridljar/com/sun/star/uno/UnoRuntime.java | 4 | ||||
-rw-r--r-- | ridljar/test/com/sun/star/lib/uno/typedesc/TypeDescription_Test.java | 59 |
12 files changed, 269 insertions, 473 deletions
diff --git a/ridljar/Jar_ridl.mk b/ridljar/Jar_ridl.mk index cdee781d5be6..90bdc9449b41 100644 --- a/ridljar/Jar_ridl.mk +++ b/ridljar/Jar_ridl.mk @@ -37,12 +37,8 @@ $(eval $(call gb_Jar_add_sourcefiles,ridl,\ ridljar/com/sun/star/uno/Enum \ ridljar/com/sun/star/uno/IBridge \ ridljar/com/sun/star/uno/IEnvironment \ - ridljar/com/sun/star/uno/IFieldDescription \ ridljar/com/sun/star/uno/IMapping \ - ridljar/com/sun/star/uno/IMemberDescription \ - ridljar/com/sun/star/uno/IMethodDescription \ ridljar/com/sun/star/uno/IQueryInterface \ - ridljar/com/sun/star/uno/ITypeDescription \ ridljar/com/sun/star/uno/Type \ ridljar/com/sun/star/uno/UnoRuntime \ )) diff --git a/ridljar/com/sun/star/lib/uno/typedesc/FieldDescription.java b/ridljar/com/sun/star/lib/uno/typedesc/FieldDescription.java index 01b02fa40de3..6dcdc99db999 100644 --- a/ridljar/com/sun/star/lib/uno/typedesc/FieldDescription.java +++ b/ridljar/com/sun/star/lib/uno/typedesc/FieldDescription.java @@ -18,13 +18,14 @@ package com.sun.star.lib.uno.typedesc; -import com.sun.star.uno.IFieldDescription; -import com.sun.star.uno.ITypeDescription; import java.lang.reflect.Field; -final class FieldDescription implements IFieldDescription { +/** + * Describes non method members. + */ +public final class FieldDescription { public FieldDescription( - String name, int index, ITypeDescription typeDescription, Field field) + String name, int index, TypeDescription typeDescription, Field field) { this.name = name; this.index = index; @@ -52,16 +53,26 @@ final class FieldDescription implements IFieldDescription { return index; } - public ITypeDescription getTypeDescription() { + /** + * Gives the name of this member. + * <p> + * @return the name + */ + public TypeDescription getTypeDescription() { return typeDescription; } + /** + * Gives native java field of this member. + * <p> + * @return the java field + */ public Field getField() { return field; } private final String name; private final int index; - private final ITypeDescription typeDescription; + private final TypeDescription typeDescription; private final Field field; } diff --git a/ridljar/com/sun/star/lib/uno/typedesc/MemberDescriptionHelper.java b/ridljar/com/sun/star/lib/uno/typedesc/MemberDescriptionHelper.java index a09ca2cd3ca5..27a5361f32e4 100644 --- a/ridljar/com/sun/star/lib/uno/typedesc/MemberDescriptionHelper.java +++ b/ridljar/com/sun/star/lib/uno/typedesc/MemberDescriptionHelper.java @@ -18,11 +18,10 @@ package com.sun.star.lib.uno.typedesc; -import com.sun.star.uno.ITypeDescription; import com.sun.star.uno.TypeClass; final class MemberDescriptionHelper { - public static boolean isUnsigned(ITypeDescription desc) { + public static boolean isUnsigned(TypeDescription desc) { switch (getElementTypeClass(desc).getValue()) { case TypeClass.UNSIGNED_SHORT_value: case TypeClass.UNSIGNED_LONG_value: @@ -34,15 +33,15 @@ final class MemberDescriptionHelper { } } - public static boolean isAny(ITypeDescription desc) { + public static boolean isAny(TypeDescription desc) { return getElementTypeClass(desc) == TypeClass.ANY; } - public static boolean isInterface(ITypeDescription desc) { + public static boolean isInterface(TypeDescription desc) { return getElementTypeClass(desc) == TypeClass.INTERFACE; } - private static TypeClass getElementTypeClass(ITypeDescription desc) { + private static TypeClass getElementTypeClass(TypeDescription desc) { for (;; desc = desc.getComponentType()) { TypeClass tc = desc.getTypeClass(); if (tc != TypeClass.SEQUENCE) { diff --git a/ridljar/com/sun/star/lib/uno/typedesc/MethodDescription.java b/ridljar/com/sun/star/lib/uno/typedesc/MethodDescription.java index b4086e278cda..6cbbb1678f28 100644 --- a/ridljar/com/sun/star/lib/uno/typedesc/MethodDescription.java +++ b/ridljar/com/sun/star/lib/uno/typedesc/MethodDescription.java @@ -18,14 +18,15 @@ package com.sun.star.lib.uno.typedesc; -import com.sun.star.uno.IMethodDescription; -import com.sun.star.uno.ITypeDescription; import java.lang.reflect.Method; -public final class MethodDescription implements IMethodDescription { +/** + * Allows to examine a method in detail. It gives a view to java methods from a UNO point. + */ +public final class MethodDescription { MethodDescription( - String name, int index, boolean oneway, ITypeDescription[] inSignature, - ITypeDescription[] outSignature, ITypeDescription returnSignature, + String name, int index, boolean oneway, TypeDescription[] inSignature, + TypeDescription[] outSignature, TypeDescription returnSignature, Method method) { this.name = name; @@ -37,7 +38,7 @@ public final class MethodDescription implements IMethodDescription { this.method = method; } - MethodDescription(IMethodDescription other, int index) { + MethodDescription(MethodDescription other, int index) { this( other.getName(), index, other.isOneway(), other.getInSignature(), other.getOutSignature(), other.getReturnSignature(), @@ -64,26 +65,54 @@ public final class MethodDescription implements IMethodDescription { return index; } + /** + * Indicates if this method is <code>oneWay</code>, + * respectively if this method may become executed asynchronously. + * @return true means may execute asynchronously . + */ public boolean isOneway() { return oneway; } + /** + * Indicates if this method is const. + * @return true means it is const. + */ public boolean isConst() { return false; } - public ITypeDescription[] getInSignature() { + /** + * Gives any array of <code>TypeDescription</code> of + * the [in] parameters. + * @return the in parameters + */ + public TypeDescription[] getInSignature() { return inSignature; } - public ITypeDescription[] getOutSignature() { + /** + * Gives any array of <code>TypeDescription</code> of + * the [out] parameters. + * @return the out parameters + */ + public TypeDescription[] getOutSignature() { return outSignature; } - public ITypeDescription getReturnSignature() { + /** + * Gives the <code>TypeDescription</code> of + * the return type. + * @return the return type <code>TypeDescription</code> + */ + public TypeDescription getReturnSignature() { return returnSignature; } + /** + * Gives native java method of this method. + * @return the java method + */ public Method getMethod() { return method; } @@ -95,8 +124,8 @@ public final class MethodDescription implements IMethodDescription { private final String name; private final int index; private final boolean oneway; - private final ITypeDescription[] inSignature; - private final ITypeDescription[] outSignature; - private final ITypeDescription returnSignature; + private final TypeDescription[] inSignature; + private final TypeDescription[] outSignature; + private final TypeDescription returnSignature; private final Method method; } diff --git a/ridljar/com/sun/star/lib/uno/typedesc/TypeDescription.java b/ridljar/com/sun/star/lib/uno/typedesc/TypeDescription.java index b31c04018d53..a3c3bcd52852 100644 --- a/ridljar/com/sun/star/lib/uno/typedesc/TypeDescription.java +++ b/ridljar/com/sun/star/lib/uno/typedesc/TypeDescription.java @@ -23,9 +23,6 @@ import com.sun.star.lib.uno.typeinfo.MemberTypeInfo; import com.sun.star.lib.uno.typeinfo.MethodTypeInfo; import com.sun.star.lib.uno.typeinfo.ParameterTypeInfo; import com.sun.star.lib.uno.typeinfo.TypeInfo; -import com.sun.star.uno.IFieldDescription; -import com.sun.star.uno.IMethodDescription; -import com.sun.star.uno.ITypeDescription; import com.sun.star.uno.Type; import com.sun.star.uno.TypeClass; import java.lang.ref.ReferenceQueue; @@ -36,11 +33,12 @@ import java.util.ArrayList; import java.util.HashMap; /** - * Supplies information about UNO types. + * Supplies information about UNO types. Allows to examine a type + * in detail (e.g. it is used for marshaling/unmarshaling). * * @since UDK2.0 */ -public final class TypeDescription implements ITypeDescription { +public final class TypeDescription { public static TypeDescription getTypeDescription(String typeName) throws ClassNotFoundException { @@ -63,7 +61,7 @@ public final class TypeDescription implements ITypeDescription { throws ClassNotFoundException { //TODO: synchronize on type? - TypeDescription desc = (TypeDescription) type.getTypeDescription(); + TypeDescription desc = type.getTypeDescription(); if (desc == null) { desc = getTypeDescription(type.getTypeName()); type.setTypeDescription(desc); @@ -127,21 +125,38 @@ public final class TypeDescription implements ITypeDescription { return getTypeDescription(typeClass) != null; } - // @see ITypeDescription#getSuperType - public ITypeDescription getSuperType() { + /** + * Gets the <code>TypeDescription</code> of the + * super, if it exists. + * @return the <code>TypeDescription</code>. + */ + public TypeDescription getSuperType() { // Arbitrarily take the first super type: return superTypes == null || superTypes.length == 0 ? null : superTypes[0]; } - // @see ITypeDescription#getMethodDescriptions - public IMethodDescription[] getMethodDescriptions() { + /** + * Gets the <code>MethodDescription</code> for every + * method, if this type is an interface. Otherwise + * returns <code>null</code>. + * @return the <code>MethodDescription[]</code>. + */ + public MethodDescription[] getMethodDescriptions() { initMethodDescriptions(); return methodDescriptions; //TODO: clone? } - // @see ITypeDescription#getMethodDescription(int) - public IMethodDescription getMethodDescription(int methodId) { + /** + * Gets the <code>MethodDescription</code> for the + * method with index methodId, if it exists, otherwise + * returns <code>null</code>. + * + * @param methodId the index. + * + * @return the <code>MethodDescription</code>. + */ + public MethodDescription getMethodDescription(int methodId) { initMethodDescriptions(); return methodId < 0 ? null @@ -153,8 +168,16 @@ public final class TypeDescription implements ITypeDescription { : null; } - // @see ITypeDescription#getMethodDescription(String) - public IMethodDescription getMethodDescription(String name) { + /** + * Gets the <code>MethodDescription</code> for the + * method with the name <code>name</code>, if it exists, + * otherwise returns <code>null</code>. + * + * @param name the name of the method. + * + * @return the <code>MethodDescription</code>. + */ + public MethodDescription getMethodDescription(String name) { initMethodDescriptions(); for (int i = 0; i < superMethodDescriptions.length; ++i) { if (superMethodDescriptions[i].getName().equals(name)) { @@ -169,13 +192,26 @@ public final class TypeDescription implements ITypeDescription { return null; } - // @see ITypeDescription#getFieldDescriptions - public IFieldDescription[] getFieldDescriptions() { + /** + * Gets the <code>FieldDescription</code> for every + * field, if this type is an interface. Otherwise + * returns <code>null</code>. + * @return the <code>FieldDescription[]</code>. + */ + public FieldDescription[] getFieldDescriptions() { return fieldDescriptions; //TODO: clone? } - // @see ITypeDescription#getFieldDescription - public IFieldDescription getFieldDescription(String name) { + /** + * Gets the <code>FieldDescription</code> for the + * field with the name <code>name</code>, if it exists, + * otherwise returns <code>null</code>. + * + * @param name the name of the field. + * + * @return the <code>FieldDescription</code>. + */ + public FieldDescription getFieldDescription(String name) { for (int i = 0; i < fieldDescriptions.length; ++i) { if (fieldDescriptions[i].getName().equals(name)) { return fieldDescriptions[i]; @@ -185,27 +221,102 @@ public final class TypeDescription implements ITypeDescription { ? superTypes[0].getFieldDescription(name) : null; } - // @see ITypeDescription#getTypeClass + /** + * Gets the IDL <code>TypeClass</code> of the type. + * @return the <code>TypeClass</code>. + */ public TypeClass getTypeClass() { return typeClass; } - // @see ITypeDescription#getComponentType - public ITypeDescription getComponentType() { + /** + * Gets the component <code>TypeDescription</code> if + * this is an array type, otherwise returns <code>null</code>. + * @return the <code>TypeDescription</code> + */ + public TypeDescription getComponentType() { return componentType; } - // @see ITypeDescription#getTypeName + /** + * Gets the (UNO) type name. + * <table> + * <caption>Mapping from UNO types to type names</caption> + * <thead> + * <tr><th>UNO type</th><th>type name</th></tr> + * </thead> + * <tbody> + * <tr><td>VOID</td><td><code>"void"</code></td></tr> + * <tr><td>BOOLEAN</td><td><code>"boolean"</code></td></tr> + * <tr><td>CHAR</td><td><code>"char"</code></td></tr> + * <tr><td>BYTE</td><td><code>"byte"</code></td></tr> + * <tr><td>SHORT</td><td><code>"short"</code></td></tr> + * <tr> + * <td>UNSIGNED SHORT</td><td><code>"unsigned short"</code></td> + * </tr> + * <tr><td>LONG</td><td><code>"long"</code></td></tr> + * <tr><td>UNSIGNED LONG</td><td><code>"unsigned long"</code></td></tr> + * <tr><td>HYPER</td><td><code>"hyper"</code></td></tr> + * <tr> + * <td>UNSIGNED HYPER</td><td><code>"unsigned hyper"</code></td> + * </tr> + * <tr><td>FLOAT</td><td><code>"float"</code></td></tr> + * <tr><td>DOUBLE</td><td><code>"double"</code></td></tr> + * <tr><td>STRING</td><td><code>"string"</code></td></tr> + * <tr><td>TYPE</td><td><code>"type"</code></td></tr> + * <tr><td>ANY</td><td><code>"any"</code></td></tr> + * <tr> + * <td>sequence type of base type <var>T</var></td> + * <td><code>"[]"</code> followed by type name for <var>T</var></td> + * </tr> + * <tr> + * <td>enum type named <var>N</var></td> + * <td><var>N</var> (see below)</td> + * </tr> + * <tr> + * <td>struct type named <var>N</var></td> + * <td><var>N</var> (see below)</td> + * </tr> + * <tr> + * <td>exception type named <var>N</var></td> + * <td><var>N</var> (see below)</td> + * </tr> + * <tr> + * <td>interface type named <var>N</var></td> + * <td><var>N</var> (see below)</td> + * </tr> + * </tbody> + * </table> + * <p>For a UNO type named <var>N</var>, consisting of a sequence of module + * names <var>M<sub>1</sub></var>, ..., <var>M<sub>n</sub></var> followed by + * a simple name <var>S</var>, the corresponding type name consists of the + * same sequence of module names and simple name, with <code>"."</code> + * separating the individual elements.</p> + * @return the type name. + */ public String getTypeName() { return typeName; } - // @see ITypeDescription#getArrayTypeName + /** + * Gets the (Java) array type name. + * <p>The array type name is defined to be the Java class name (as returned + * by <code>Class.forName</code>) of the Java array class that corresponds + * to the UNO sequence type with this type (the UNO type represented by this + * <code>TypeDescription</code> instance) as base type. For an + * <code>TypeDescription</code> instance representing the UNO type VOID, + * the array type name is defined to be + * <code>"[Ljava.lang.Void;"</code>.</p> + * @return the array type name. + */ public String getArrayTypeName() { return arrayTypeName; } - // @see ITypeDescription#getZClass + /** + * Gets the corresponding java class for the type. + * @return the corresponding java class. + */ public Class<?> getZClass() { return zClass; } @@ -305,7 +416,7 @@ public final class TypeDescription implements ITypeDescription { case TypeClass.SEQUENCE_value: { // assert typeName.startsWith("[]"); - ITypeDescription componentType = getTypeDescription( + TypeDescription componentType = getTypeDescription( typeName.substring("[]".length())); // assert zClass.getName().startsWith("["); return new TypeDescription( @@ -376,7 +487,7 @@ public final class TypeDescription implements ITypeDescription { private TypeDescription( TypeClass typeClass, String typeName, String arrayTypeName, Class<?> zClass, TypeDescription[] superTypes, - ITypeDescription componentType) + TypeDescription componentType) { this.typeClass = typeClass; this.typeName = typeName; @@ -398,32 +509,32 @@ public final class TypeDescription implements ITypeDescription { return; } if (superTypes.length == 0) { // com.sun.star.uno.XInterface - superMethodDescriptions = new IMethodDescription[0]; - methodDescriptions = new IMethodDescription[] { + superMethodDescriptions = new MethodDescription[0]; + methodDescriptions = new MethodDescription[] { new MethodDescription( "queryInterface", MethodDescription.ID_QUERY_INTERFACE, - false, new ITypeDescription[] { getDefinitely(Type.TYPE) }, - new ITypeDescription[] { null }, getDefinitely(Type.ANY), + false, new TypeDescription[] { getDefinitely(Type.TYPE) }, + new TypeDescription[] { null }, getDefinitely(Type.ANY), null), new MethodDescription( "acquire", MethodDescription.ID_ACQUIRE, true, - new ITypeDescription[0], new ITypeDescription[0], + new TypeDescription[0], new TypeDescription[0], getDefinitely(Type.VOID), null), new MethodDescription( "release", MethodDescription.ID_RELEASE, true, - new ITypeDescription[0], new ITypeDescription[0], + new TypeDescription[0], new TypeDescription[0], getDefinitely(Type.VOID), null) }; } else { int methodOffset = 0; ArrayList<MethodDescription> superList = new ArrayList<MethodDescription>(); for (int i = 0; i < superTypes.length; ++i) { - IMethodDescription[] ds = superTypes[i].getMethodDescriptions(); + MethodDescription[] ds = superTypes[i].getMethodDescriptions(); for (int j = 0; j < ds.length; ++j) { superList.add(new MethodDescription(ds[j], methodOffset++)); } } superMethodDescriptions = superList.toArray( - new IMethodDescription[superList.size()]); + new MethodDescription[superList.size()]); ArrayList<MethodDescription> directList = new ArrayList<MethodDescription>(); TypeInfo[] infos = getTypeInfo(); int infoCount = infos == null ? 0 : infos.length; @@ -440,13 +551,13 @@ public final class TypeDescription implements ITypeDescription { String getterName = "get" + info.getName(); Method getter = findMethod(methods, getterName); Type t = info.getUnoType(); - ITypeDescription type = t == null + TypeDescription type = t == null ? getTypeDescription(getter.getReturnType(), info) : getDefinitely(t); directList.add( new MethodDescription( getterName, index++ + methodOffset, false, - new ITypeDescription[0], new ITypeDescription[0], + new TypeDescription[0], new TypeDescription[0], type, getter)); if (!info.isReadOnly()) { String setterName = "set" + info.getName(); @@ -454,8 +565,8 @@ public final class TypeDescription implements ITypeDescription { directList.add( new MethodDescription( setterName, index++ + methodOffset, false, - new ITypeDescription[] { type }, - new ITypeDescription[] { null }, + new TypeDescription[] { type }, + new TypeDescription[] { null }, getDefinitely(Type.VOID), setter)); } } else { @@ -467,9 +578,9 @@ public final class TypeDescription implements ITypeDescription { } Method method = findMethod(methods, info.getName()); Class<?>[] params = method.getParameterTypes(); - ITypeDescription[] in = new ITypeDescription[params.length]; - ITypeDescription[] out - = new ITypeDescription[params.length]; + TypeDescription[] in = new TypeDescription[params.length]; + TypeDescription[] out + = new TypeDescription[params.length]; for (int j = 0; j < params.length; ++j) { ParameterTypeInfo p = null; if (i < infoCount @@ -479,7 +590,7 @@ public final class TypeDescription implements ITypeDescription { p = (ParameterTypeInfo) infos[i++]; } Type pt = p == null ? null : p.getUnoType(); - ITypeDescription d = pt == null + TypeDescription d = pt == null ? getTypeDescription(params[j], p) : getDefinitely(pt); if (p == null || p.isIN()) { @@ -501,7 +612,7 @@ public final class TypeDescription implements ITypeDescription { } } methodDescriptions = directList.toArray( - new IMethodDescription[directList.size()]); + new MethodDescription[directList.size()]); } } @@ -560,7 +671,7 @@ public final class TypeDescription implements ITypeDescription { new TypeDescription[args.size()]); } - private IFieldDescription[] calculateFieldDescriptions( + private FieldDescription[] calculateFieldDescriptions( TypeDescription[] typeArguments) { if (typeClass != TypeClass.STRUCT && typeClass != TypeClass.EXCEPTION) { @@ -568,11 +679,11 @@ public final class TypeDescription implements ITypeDescription { } TypeInfo[] infos = getTypeInfo(); int infoCount = infos == null ? 0 : infos.length; - ITypeDescription superType = getSuperType(); - IFieldDescription[] superDescs = superType == null + TypeDescription superType = getSuperType(); + FieldDescription[] superDescs = superType == null ? null : superType.getFieldDescriptions(); int superCount = superDescs == null ? 0 : superDescs.length; - IFieldDescription[] descs = new IFieldDescription[ + FieldDescription[] descs = new FieldDescription[ superCount + infoCount]; if (superCount != 0) { System.arraycopy(superDescs, 0, descs, 0, superCount); @@ -626,7 +737,7 @@ public final class TypeDescription implements ITypeDescription { "Bad UNOTYPEINFO for " + zClass + ": no method " + name); } - private static ITypeDescription getTypeDescription( + private static TypeDescription getTypeDescription( Class<?> zClass, TypeInfo typeInfo) { return getDefinitely( @@ -700,9 +811,9 @@ public final class TypeDescription implements ITypeDescription { private final String arrayTypeName; private final Class<?> zClass; private final TypeDescription[] superTypes; - private final ITypeDescription componentType; + private final TypeDescription componentType; private final boolean hasTypeArguments; - private final IFieldDescription[] fieldDescriptions; - private IMethodDescription[] methodDescriptions = null; - private IMethodDescription[] superMethodDescriptions; + private final FieldDescription[] fieldDescriptions; + private MethodDescription[] methodDescriptions = null; + private MethodDescription[] superMethodDescriptions; } diff --git a/ridljar/com/sun/star/uno/IFieldDescription.java b/ridljar/com/sun/star/uno/IFieldDescription.java deleted file mode 100644 index d41c2e500789..000000000000 --- a/ridljar/com/sun/star/uno/IFieldDescription.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ - -package com.sun.star.uno; - - -import java.lang.reflect.Field; - -/** - * The <code>IFieldDescription</code> describes non - * method members. - * - * @deprecated This interface does not cover all the features supported by the - * corresponding (unpublished) implementation. But no client code should need - * to access this functionality, anyway. - */ -public interface IFieldDescription extends IMemberDescription { - /** - * Gives the name of this member. - * <p> - * @return the name - */ - ITypeDescription getTypeDescription(); - - /** - * Gives native java field of this member. - * <p> - * @return the java field - */ - Field getField(); -} diff --git a/ridljar/com/sun/star/uno/IMemberDescription.java b/ridljar/com/sun/star/uno/IMemberDescription.java deleted file mode 100644 index 041f1e021313..000000000000 --- a/ridljar/com/sun/star/uno/IMemberDescription.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ - -package com.sun.star.uno; - -/** - * The <code>IMemberDescription</code> is the base interface - * for the special subset of typedescriptions, which describe - * members of IDL structs or interfeces. - * - * @deprecated This interface does not cover all the features supported by the - * corresponding (unpublished) implementation. But no client code should need - * to access this functionality, anyway. - */ -public interface IMemberDescription { - /** - * Gives the name of this member. - * @return the name - */ - String getName(); - - /** - * Indicates if this member is unsigned. (Not useful for IMethodDescription). - * @return the unsigned state - */ - boolean isUnsigned(); - - /** - * Indicates if this member is an any. - * @return the any state - */ - boolean isAny(); - - /** - * Indicates if this member is an interface. - * @return the interface state - */ - boolean isInterface(); - - /** - * Gives the relative index of this member in the declaring - * interface or struct (including superclasses). - * @return the relative index of this member - */ - int getIndex(); -} diff --git a/ridljar/com/sun/star/uno/IMethodDescription.java b/ridljar/com/sun/star/uno/IMethodDescription.java deleted file mode 100644 index f58e194f2efd..000000000000 --- a/ridljar/com/sun/star/uno/IMethodDescription.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ - -package com.sun.star.uno; - - -import java.lang.reflect.Method; - - -/** - * The <code>IMethodDescription</code> allows to examine a method - * in detail. It gives a view to java methods from a UNO point. - * - * @deprecated This interface does not cover all the features supported by the - * corresponding (unpublished) implementation. But no client code should need - * to access this functionality, anyway. - */ -public interface IMethodDescription extends IMemberDescription { - /** - * Indicates if this method is <code>oneWay</code>, - * respectively if this method may become executed asynchronously. - * @return true means may execute asynchronously . - */ - boolean isOneway(); - - /** - * Indicates if this method is const. - * @return true means it is const. - */ - boolean isConst(); - - /** - * Gives any array of <code>ITypeDescription</code> of - * the [in] parameters. - * @return the in parameters - */ - ITypeDescription[] getInSignature(); - - /** - * Gives any array of <code>ITypeDescription</code> of - * the [out] parameters. - * @return the out parameters - */ - ITypeDescription[] getOutSignature(); - - /** - * Gives the <code>ITypeDescription</code> of - * the return type. - * @return the return type <code>ITypeDescription</code> - */ - ITypeDescription getReturnSignature(); - - /** - * Gives native java method of this method. - * @return the java methodd - */ - Method getMethod(); -} diff --git a/ridljar/com/sun/star/uno/ITypeDescription.java b/ridljar/com/sun/star/uno/ITypeDescription.java deleted file mode 100644 index 1495c54f5a8c..000000000000 --- a/ridljar/com/sun/star/uno/ITypeDescription.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ - -package com.sun.star.uno; - -/** - * The <code>ITypeDescription</code> allows to examine a type - * in detail (e.g. it is used for marshaling/unmarshaling). - * @deprecated This interface does not cover all the features supported by the - * corresponding (unpublished) implementation. But no client code should need - * to access this functionality, anyway. - */ -public interface ITypeDescription { - /** - * Gets the <code>ITypeDescription</code> of the - * super, if it exists. - * @return the <code>ITypeDescription</code>. - */ - ITypeDescription getSuperType(); - - /** - * Gets the <code>IMethodDescription</code> for every - * method, if this type is an interface. Otherwise - * returns <code>null</code>. - * @return the <code>IMethodDescription[]</code>. - */ - IMethodDescription []getMethodDescriptions(); - - /** - * Gets the <code>IMethodDescription</code> for the - * method with index methodId, if it exists, otherwise - * returns <code>null</code>. - * - * @param methodId the index. - * - * @return the <code>IMethodDescription</code>. - */ - IMethodDescription getMethodDescription(int methodId); - - /** - * Gets the <code>IMethodDescription</code> for the - * method with the name <code>name</code>, if it exists, - * otherwise returns <code>null</code>. - * - * @param name the name of the method. - * - * @return the <code>IMethodDescription</code>. - */ - IMethodDescription getMethodDescription(String name); - - /** - * Gets the <code>IFieldDescription</code> for every - * field, if this type is an interface. Otherwise - * returns <code>null</code>. - * @return the <code>IFieldDescription[]</code>. - */ - IFieldDescription []getFieldDescriptions(); - - /** - * Gets the <code>IFieldDescription</code> for the - * field with the name <code>name</code>, if it exists, - * otherwise returns <code>null</code>. - * - * @param name the name of the field. - * - * @return the <code>IFieldDescription</code>. - */ - IFieldDescription getFieldDescription(String name); - - /** - * Gets the IDL <code>TypeClass</code> of the type. - * @return the <code>TypeClass</code>. - */ - TypeClass getTypeClass(); - - /** - * Gets the component <code>ITypeDescription</code> if - * this is an array type, otherwise returns <code>null</code>. - * @return the <code>ITypeDescription</code> - */ - ITypeDescription getComponentType(); - - /** - * Gets the (UNO) type name. - * <table> - * <caption>Mapping from UNO types to type names</caption> - * <thead> - * <tr><th>UNO type</th><th>type name</th></tr> - * </thead> - * <tbody> - * <tr><td>VOID</td><td><code>"void"</code></td></tr> - * <tr><td>BOOLEAN</td><td><code>"boolean"</code></td></tr> - * <tr><td>CHAR</td><td><code>"char"</code></td></tr> - * <tr><td>BYTE</td><td><code>"byte"</code></td></tr> - * <tr><td>SHORT</td><td><code>"short"</code></td></tr> - * <tr> - * <td>UNSIGNED SHORT</td><td><code>"unsigned short"</code></td> - * </tr> - * <tr><td>LONG</td><td><code>"long"</code></td></tr> - * <tr><td>UNSIGNED LONG</td><td><code>"unsigned long"</code></td></tr> - * <tr><td>HYPER</td><td><code>"hyper"</code></td></tr> - * <tr> - * <td>UNSIGNED HYPER</td><td><code>"unsigned hyper"</code></td> - * </tr> - * <tr><td>FLOAT</td><td><code>"float"</code></td></tr> - * <tr><td>DOUBLE</td><td><code>"double"</code></td></tr> - * <tr><td>STRING</td><td><code>"string"</code></td></tr> - * <tr><td>TYPE</td><td><code>"type"</code></td></tr> - * <tr><td>ANY</td><td><code>"any"</code></td></tr> - * <tr> - * <td>sequence type of base type <var>T</var></td> - * <td><code>"[]"</code> followed by type name for <var>T</var></td> - * </tr> - * <tr> - * <td>enum type named <var>N</var></td> - * <td><var>N</var> (see below)</td> - * </tr> - * <tr> - * <td>struct type named <var>N</var></td> - * <td><var>N</var> (see below)</td> - * </tr> - * <tr> - * <td>exception type named <var>N</var></td> - * <td><var>N</var> (see below)</td> - * </tr> - * <tr> - * <td>interface type named <var>N</var></td> - * <td><var>N</var> (see below)</td> - * </tr> - * </tbody> - * </table> - * <p>For a UNO type named <var>N</var>, consisting of a sequence of module - * names <var>M<sub>1</sub></var>, ..., <var>M<sub>n</sub></var> followed by - * a simple name <var>S</var>, the corresponding type name consists of the - * same sequence of module names and simple name, with <code>"."</code> - * separating the individual elements.</p> - * @return the type name. - */ - String getTypeName(); - - /** - * Gets the (Java) array type name. - * <p>The array type name is defined to be the Java class name (as returned - * by <code>Class.forName</code>) of the Java array class that corresponds - * to the UNO sequence type with this type (the UNO type represented by this - * <code>ITypeDescription</code> instance) as base type. For an - * <code>ITypeDescription</code> instance representing the UNO type VOID, - * the array type name is defined to be - * <code>"[Ljava.lang.Void;"</code>.</p> - * @return the array type name. - */ - String getArrayTypeName(); - - /** - * Gets the corresponding java class for the type. - * @return the corresponding java class. - */ - Class<?> getZClass(); -} diff --git a/ridljar/com/sun/star/uno/Type.java b/ridljar/com/sun/star/uno/Type.java index 018a6069d56d..355d3f8bd659 100644 --- a/ridljar/com/sun/star/uno/Type.java +++ b/ridljar/com/sun/star/uno/Type.java @@ -20,6 +20,8 @@ package com.sun.star.uno; import java.util.HashMap; +import com.sun.star.lib.uno.typedesc.TypeDescription; + /** * Represents the UNO built-in type <code>TYPE</code>. * @@ -35,7 +37,7 @@ import java.util.HashMap; * will never be <code>null</code>. A <code>Type</code> may have an additional * "z class" (a <code>java.lang.Class</code>), giving a Java class type that * corresponds to the UNO type. Also, a <code>Type</code> can cache a type - * description (a <code>com.sun.star.uno.ITypeDescription</code>), which can be + * description (a <code>com.sun.star.uno.typedesc.TypeDescription</code>), which can be * computed and set by <code>TypeDescription.getTypeDescription</code>. */ public class Type { @@ -272,10 +274,11 @@ public class Type { /** * Constructs a new <code>Type</code> from the given type description. * + * @internal * @param typeDescription a type description. Must not be * <code>null</code>. */ - public Type(ITypeDescription typeDescription) { + public Type(TypeDescription typeDescription) { _typeName = typeDescription.getTypeName(); _typeClass = typeDescription.getTypeClass(); _iTypeDescription = typeDescription; @@ -367,18 +370,20 @@ public class Type { /** * Gives the type description of this type. * + * @internal * @return the type description; may be <code>null</code> */ - public ITypeDescription getTypeDescription() { + public TypeDescription getTypeDescription() { return _iTypeDescription; } /** * Sets the type description for this type. * + * @internal * @param typeDescription the type description */ - public void setTypeDescription(ITypeDescription typeDescription) { + public void setTypeDescription(TypeDescription typeDescription) { _iTypeDescription = typeDescription; } @@ -683,9 +688,9 @@ public class Type { return typeClass.getValue() < __typeClassToTypeName.length; } - protected TypeClass _typeClass; // TODO should be final - protected String _typeName; // TODO should be final + private TypeClass _typeClass; // TODO should be final + private String _typeName; // TODO should be final - protected Class<?> _class; - protected ITypeDescription _iTypeDescription; + private Class<?> _class; + private TypeDescription _iTypeDescription; } diff --git a/ridljar/com/sun/star/uno/UnoRuntime.java b/ridljar/com/sun/star/uno/UnoRuntime.java index 114753d71d49..4bedc275c451 100644 --- a/ridljar/com/sun/star/uno/UnoRuntime.java +++ b/ridljar/com/sun/star/uno/UnoRuntime.java @@ -23,6 +23,8 @@ import java.lang.reflect.Array; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.Iterator; + +import com.sun.star.lib.uno.typedesc.FieldDescription; import com.sun.star.lib.uno.typedesc.TypeDescription; import com.sun.star.lib.util.WeakMap; @@ -243,7 +245,7 @@ public class UnoRuntime { return v1 == v2; case TypeClass.STRUCT_value: case TypeClass.EXCEPTION_value: - IFieldDescription[] fs; + FieldDescription[] fs; try { fs = TypeDescription.getTypeDescription(t). getFieldDescriptions(); diff --git a/ridljar/test/com/sun/star/lib/uno/typedesc/TypeDescription_Test.java b/ridljar/test/com/sun/star/lib/uno/typedesc/TypeDescription_Test.java index 1caf962fe766..13271dc0e2bd 100644 --- a/ridljar/test/com/sun/star/lib/uno/typedesc/TypeDescription_Test.java +++ b/ridljar/test/com/sun/star/lib/uno/typedesc/TypeDescription_Test.java @@ -21,9 +21,6 @@ package com.sun.star.lib.uno.typedesc; import com.sun.star.lib.uno.typeinfo.MethodTypeInfo; import com.sun.star.lib.uno.typeinfo.TypeInfo; import com.sun.star.uno.Any; -import com.sun.star.uno.IFieldDescription; -import com.sun.star.uno.IMethodDescription; -import com.sun.star.uno.ITypeDescription; import com.sun.star.uno.Type; import com.sun.star.uno.TypeClass; import com.sun.star.uno.XInterface; @@ -33,31 +30,31 @@ import static org.junit.Assert.*; public final class TypeDescription_Test { @Test public void test() throws Exception { - ITypeDescription voidTD = TypeDescription.getTypeDescription( + TypeDescription voidTD = TypeDescription.getTypeDescription( void.class); - ITypeDescription stringTD = TypeDescription.getTypeDescription( + TypeDescription stringTD = TypeDescription.getTypeDescription( String.class); - ITypeDescription typeTD = TypeDescription.getTypeDescription( + TypeDescription typeTD = TypeDescription.getTypeDescription( Type.class); - ITypeDescription anyTD = TypeDescription.getTypeDescription(Any.class); - ITypeDescription interfaceTD = TypeDescription.getTypeDescription( + TypeDescription anyTD = TypeDescription.getTypeDescription(Any.class); + TypeDescription interfaceTD = TypeDescription.getTypeDescription( XInterface.class); MethodSignature sigBuildinSyncTypeToAny = new MethodSignature( - true, false, new ITypeDescription[] { typeTD }, - new ITypeDescription[1], anyTD); + true, false, new TypeDescription[] { typeTD }, + new TypeDescription[1], anyTD); MethodSignature sigBuildinAsyncToVoid = new MethodSignature( - true, true, new ITypeDescription[0], new ITypeDescription[0], + true, true, new TypeDescription[0], new TypeDescription[0], voidTD); MethodSignature sigAddonSyncStringToVoid = new MethodSignature( - false, false, new ITypeDescription[] { stringTD }, - new ITypeDescription[1], voidTD); + false, false, new TypeDescription[] { stringTD }, + new TypeDescription[1], voidTD); MethodSignature sigAddonSyncStringInterfaceToVoid = new MethodSignature( - false, false, new ITypeDescription[] { stringTD, interfaceTD }, - new ITypeDescription[2], voidTD); + false, false, new TypeDescription[] { stringTD, interfaceTD }, + new TypeDescription[2], voidTD); MethodSignature sigAddonSyncStringToInterface = new MethodSignature( - false, false, new ITypeDescription[] { stringTD }, - new ITypeDescription[1], interfaceTD); + false, false, new TypeDescription[] { stringTD }, + new TypeDescription[1], interfaceTD); TypeSignature emptyTypeSig = new TypeSignature( null, new String[0], null, new String[0], null); @@ -153,8 +150,8 @@ public final class TypeDescription_Test { private final class MethodSignature { public MethodSignature( - boolean buildIn, boolean oneWay, ITypeDescription[] inParameters, - ITypeDescription[] outParameters, ITypeDescription returnValue) + boolean buildIn, boolean oneWay, TypeDescription[] inParameters, + TypeDescription[] outParameters, TypeDescription returnValue) { this.buildIn = buildIn; this.oneWay = oneWay; @@ -164,20 +161,20 @@ public final class TypeDescription_Test { } public void test(String prefix, int index, - IMethodDescription description) { + MethodDescription description) { assertEquals(prefix + "; getIndex", index, description.getIndex()); assertEquals( prefix + "; getMethod", buildIn, description.getMethod() == null); assertEquals(prefix + "; isOneway", oneWay, description.isOneway()); - ITypeDescription[] in = description.getInSignature(); + TypeDescription[] in = description.getInSignature(); assertEquals( prefix + "; getInSignature", inParameters.length, in.length); for (int i = 0; i < in.length; ++i) { assertEquals( prefix + "; getInSignature " + i, inParameters[i], in[i]); } - ITypeDescription[] out = description.getOutSignature(); + TypeDescription[] out = description.getOutSignature(); assertEquals( prefix + "; getOutSignature", outParameters.length, out.length); for (int i = 0; i < out.length; ++i) { @@ -194,9 +191,9 @@ public final class TypeDescription_Test { private final boolean buildIn; private final boolean oneWay; - private final ITypeDescription[] inParameters; - private final ITypeDescription[] outParameters; - private final ITypeDescription returnValue; + private final TypeDescription[] inParameters; + private final TypeDescription[] outParameters; + private final TypeDescription returnValue; } private final class TypeSignature { @@ -216,7 +213,7 @@ public final class TypeDescription_Test { } public void test(String prefix, Object[] data, - ITypeDescription description) throws Exception { + TypeDescription description) throws Exception { assertEquals( prefix + "; getTypeName", data[0], description.getTypeName()); assertEquals( @@ -233,7 +230,7 @@ public final class TypeDescription_Test { assertNull( prefix + "; getComponentType", description.getComponentType()); - IMethodDescription[] mds = description.getMethodDescriptions(); + MethodDescription[] mds = description.getMethodDescriptions(); assertTrue( prefix + "; getMethodDescriptions", mds == null @@ -247,7 +244,7 @@ public final class TypeDescription_Test { } } for (int i = 0; i < methodNames.length; ++i) { - IMethodDescription md = description.getMethodDescription( + MethodDescription md = description.getMethodDescription( i + methodOffset); assertNotNull( prefix + "; getMethodDescription " + (i + methodOffset), @@ -257,7 +254,7 @@ public final class TypeDescription_Test { i + methodOffset, md); } for (int i = 0; i < methodNames.length; ++i) { - IMethodDescription md = description.getMethodDescription( + MethodDescription md = description.getMethodDescription( methodNames[i]); assertNotNull( prefix + "; getMethodDescription " + methodNames[i], md); @@ -266,7 +263,7 @@ public final class TypeDescription_Test { i + methodOffset, md); } - IFieldDescription[] fds = description.getFieldDescriptions(); + FieldDescription[] fds = description.getFieldDescriptions(); assertTrue( prefix + "; getFieldDescriptions", fds == null @@ -281,7 +278,7 @@ public final class TypeDescription_Test { } } - ITypeDescription supert = description.getSuperType(); + TypeDescription supert = description.getSuperType(); assertEquals( prefix + "; getSuperType", data.length < 6, supert == null); if (supert != null && data[5] != null) { |