summaryrefslogtreecommitdiff
path: root/ridljar
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2016-06-06 14:21:20 +0200
committerStephan Bergmann <sbergman@redhat.com>2016-06-07 08:49:31 +0000
commit970b0ebb67d4033d70795e586a26c7a695c14194 (patch)
tree3ef0fa7f436539415055089188ad2f028f24cbaa /ridljar
parentf30aa6e51f7fe2fd3da47629de5a0dc13706e866 (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.mk4
-rw-r--r--ridljar/com/sun/star/lib/uno/typedesc/FieldDescription.java23
-rw-r--r--ridljar/com/sun/star/lib/uno/typedesc/MemberDescriptionHelper.java9
-rw-r--r--ridljar/com/sun/star/lib/uno/typedesc/MethodDescription.java53
-rw-r--r--ridljar/com/sun/star/lib/uno/typedesc/TypeDescription.java215
-rw-r--r--ridljar/com/sun/star/uno/IFieldDescription.java46
-rw-r--r--ridljar/com/sun/star/uno/IMemberDescription.java61
-rw-r--r--ridljar/com/sun/star/uno/IMethodDescription.java73
-rw-r--r--ridljar/com/sun/star/uno/ITypeDescription.java174
-rw-r--r--ridljar/com/sun/star/uno/Type.java21
-rw-r--r--ridljar/com/sun/star/uno/UnoRuntime.java4
-rw-r--r--ridljar/test/com/sun/star/lib/uno/typedesc/TypeDescription_Test.java59
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) {