summaryrefslogtreecommitdiff
path: root/ridljar
diff options
context:
space:
mode:
authorKay Ramme <kr@openoffice.org>2001-05-08 08:34:18 +0000
committerKay Ramme <kr@openoffice.org>2001-05-08 08:34:18 +0000
commit2938ec91445bf68be60ea0382003fa83d5491e6e (patch)
tree51417da010d8fd02bebfad7c2b588ec68c0cf0d6 /ridljar
parent4cc8b7efdd23e69adaac055455bdc3d44dac225f (diff)
type clean up
Diffstat (limited to 'ridljar')
-rw-r--r--ridljar/com/sun/star/lib/uno/typedesc/FieldDescription.java94
-rw-r--r--ridljar/com/sun/star/lib/uno/typedesc/MethodDescription.java16
-rw-r--r--ridljar/com/sun/star/lib/uno/typedesc/TypeDescription.java169
-rw-r--r--ridljar/com/sun/star/uno/Any.java34
-rw-r--r--ridljar/com/sun/star/uno/IFieldDescription.java89
-rw-r--r--ridljar/com/sun/star/uno/IMemberDescription.java100
-rw-r--r--ridljar/com/sun/star/uno/IMethodDescription.java130
-rw-r--r--ridljar/com/sun/star/uno/ITypeDescription.java161
-rw-r--r--ridljar/com/sun/star/uno/Type.java408
9 files changed, 831 insertions, 370 deletions
diff --git a/ridljar/com/sun/star/lib/uno/typedesc/FieldDescription.java b/ridljar/com/sun/star/lib/uno/typedesc/FieldDescription.java
new file mode 100644
index 000000000000..0d3c5dd2b825
--- /dev/null
+++ b/ridljar/com/sun/star/lib/uno/typedesc/FieldDescription.java
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * $RCSfile: FieldDescription.java,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: kr $ $Date: 2001-05-08 09:34:17 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+package com.sun.star.lib.uno.typedesc;
+
+
+import java.lang.reflect.Field;
+
+
+import com.sun.star.uno.IMethodDescription;
+import com.sun.star.uno.ITypeDescription;
+import com.sun.star.uno.IFieldDescription;
+
+import com.sun.star.lib.uno.typeinfo.MemberTypeInfo;
+
+public class FieldDescription extends MemberTypeInfo implements IFieldDescription {
+ ITypeDescription _iTypeDescription;
+ Field _field;
+
+ FieldDescription(MemberTypeInfo memberTypeInfo, Field field) {
+ super(memberTypeInfo.getName(), memberTypeInfo.getFlags());
+
+ _field = field;
+ }
+
+ public ITypeDescription getTypeDescription() {
+ if(_iTypeDescription == null)
+ _iTypeDescription = TypeDescription.getTypeDescription(this, getField().getType());
+
+ return _iTypeDescription;
+ }
+
+ public Field getField() {
+ return _field;
+ }
+}
diff --git a/ridljar/com/sun/star/lib/uno/typedesc/MethodDescription.java b/ridljar/com/sun/star/lib/uno/typedesc/MethodDescription.java
index b5c279140e24..ebbb58a72a1e 100644
--- a/ridljar/com/sun/star/lib/uno/typedesc/MethodDescription.java
+++ b/ridljar/com/sun/star/lib/uno/typedesc/MethodDescription.java
@@ -2,9 +2,9 @@
*
* $RCSfile: MethodDescription.java,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: kr $ $Date: 2001-04-17 15:01:37 $
+ * last change: $Author: kr $ $Date: 2001-05-08 09:34:17 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,12 +65,16 @@ package com.sun.star.lib.uno.typedesc;
import java.lang.reflect.Method;
+import com.sun.star.uno.IMethodDescription;
+import com.sun.star.uno.ITypeDescription;
+
+
import com.sun.star.lib.uno.typeinfo.MethodTypeInfo;
import com.sun.star.lib.uno.typeinfo.ParameterTypeInfo;
import com.sun.star.lib.uno.typeinfo.TypeInfo;
-public class MethodDescription extends MethodTypeInfo {
+public class MethodDescription extends MethodTypeInfo implements IMethodDescription {
static private final TypeDescription __xInterface = TypeDescription.getTypeDescription(com.sun.star.uno.XInterface.class);
static private TypeDescription __xInterfaceArray;
static private TypeDescription __xInterfaceArrayArray;
@@ -132,15 +136,15 @@ public class MethodDescription extends MethodTypeInfo {
_return_sig = TypeDescription.getTypeDescription(this, resultClass);
}
- public TypeDescription[] getInSignature() {
+ public ITypeDescription[] getInSignature() {
return _in_sig;
}
- public TypeDescription[] getOutSignature() {
+ public ITypeDescription[] getOutSignature() {
return _out_sig;
}
- public TypeDescription getReturnSig() {
+ public ITypeDescription getReturnSignature() {
return _return_sig;
}
diff --git a/ridljar/com/sun/star/lib/uno/typedesc/TypeDescription.java b/ridljar/com/sun/star/lib/uno/typedesc/TypeDescription.java
index 337d00fffa8a..14f48256bbc4 100644
--- a/ridljar/com/sun/star/lib/uno/typedesc/TypeDescription.java
+++ b/ridljar/com/sun/star/lib/uno/typedesc/TypeDescription.java
@@ -2,9 +2,9 @@
*
* $RCSfile: TypeDescription.java,v $
*
- * $Revision: 1.7 $
+ * $Revision: 1.8 $
*
- * last change: $Author: kr $ $Date: 2001-05-04 11:13:38 $
+ * last change: $Author: kr $ $Date: 2001-05-08 09:34:17 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -72,6 +72,9 @@ import java.lang.reflect.Modifier;
import com.sun.star.uno.Any;
import com.sun.star.uno.Enum;
+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.Union;
@@ -94,15 +97,15 @@ import com.sun.star.lib.uno.typeinfo.TypeInfo;
* methods, which may be changed or moved in the furture, so please
* do not use these methods.
* <p>
- * @version $Revision: 1.7 $ $ $Date: 2001-05-04 11:13:38 $
+ * @version $Revision: 1.8 $ $ $Date: 2001-05-08 09:34:17 $
* @author Kay Ramme
* @since UDK2.0
*/
-public class TypeDescription {
+public class TypeDescription implements ITypeDescription {
/**
* When set to true, enables various debugging output.
*/
- public static final boolean DEBUG = false;
+ private static final boolean DEBUG = false;
public static final TypeDescription __void_TypeDescription = new TypeDescription(TypeClass.VOID, "void", "[Ljava.lang.Void;", void.class); // VOID
public static final TypeDescription __char_TypeDescription = new TypeDescription(TypeClass.CHAR, "char", "[C", char.class); // CHAR
@@ -121,7 +124,7 @@ public class TypeDescription {
public static final TypeDescription __any_TypeDescription = new TypeDescription(TypeClass.ANY, "any", "[Ljava.lang.Object;", Object.class); // ANY
- static private final Hashtable __classToTypeDescription = new Hashtable();
+ static private final Hashtable __classToTypeDescription = new Hashtable();
static private final Hashtable __typeNameToTypeDescription = new Hashtable();
static private final Hashtable __typeClassToTypeName = new Hashtable();
@@ -528,6 +531,25 @@ public class TypeDescription {
return typeDescription;
}
+ static public ITypeDescription getTypeDescription(Type type) throws ClassNotFoundException {
+ ITypeDescription iTypeDescription = type.getTypeDescription();
+
+ if(iTypeDescription == null) {
+ if(type.getZClass() != null)
+ iTypeDescription = getTypeDescription(type.getZClass());
+
+ else if(type.getTypeClass() != null && type.getTypeClass() != TypeClass.UNKNOWN)
+ iTypeDescription = getTypeDescription(type.getTypeClass());
+
+ else if(type.getTypeName() != null)
+ iTypeDescription = getTypeDescription(type.getTypeName());
+
+ type.setTypeDescription(iTypeDescription);
+ }
+
+ return iTypeDescription;
+ }
+
static public TypeDescription getTypeDescription(TypeClass typeClass) {
TypeDescription typeDescription = null;
@@ -548,11 +570,11 @@ public class TypeDescription {
protected int _offset;
protected MethodDescription _methodDescriptionsByIndex[];
protected Hashtable _methodDescriptionsByName;
- protected Hashtable _memberTypeInfosByName;
+ protected Hashtable _iFieldDescriptionsByName;
- protected Field _fields[];
+ protected IFieldDescription _iFieldDescriptions[];
- protected TypeDescription _componentType;
+ protected ITypeDescription _componentType;
private void _initByClass(Class zClass) {
@@ -588,7 +610,7 @@ public class TypeDescription {
_typeClass = TypeClass.SEQUENCE;
_componentType = getTypeDescription(zClass.getComponentType());
- _typeName = "[]" + _componentType._typeName;
+ _typeName = "[]" + _componentType.getTypeName();
_arrayTypeName = "[" + _class.getName();
}
@@ -602,7 +624,6 @@ public class TypeDescription {
if(superClass != null && superClass != Object.class)
_superType = getTypeDescription(superClass);
- _initFields();
_initMemberTypeInfos();
}
else {
@@ -615,7 +636,6 @@ public class TypeDescription {
if(superClass != null && superClass != Object.class)
_superType = getTypeDescription(superClass);
- _initFields();
_initMemberTypeInfos();
}
@@ -642,8 +662,8 @@ public class TypeDescription {
_typeClass = TypeClass.SEQUENCE;
_componentType = getTypeDescription(typeName.substring(2));
- _class = Class.forName(_componentType._arrayTypeName);
- _arrayTypeName = "[" + _componentType._arrayTypeName;
+ _class = Class.forName(_componentType.getArrayTypeName());
+ _arrayTypeName = "[" + _componentType.getArrayTypeName();
__cyclicTypes.remove(typeName);
}
@@ -653,21 +673,6 @@ public class TypeDescription {
}
- private void _initFields() {
- Field fields[] = _class.getFields();
-
- int size = 0;
- for(int i = 0; i < fields.length; ++ i)
- if((fields[i].getModifiers() & (Modifier.STATIC | Modifier.TRANSIENT)) == 0) // neither static nor transient ?
- ++ size;
-
- _fields = new Field[size];
- size = 0;
- for(int i = 0; i < fields.length; ++ i)
- if((fields[i].getModifiers() & (Modifier.STATIC | Modifier.TRANSIENT)) == 0) // neither static nor transient ?
- _fields[size ++] = fields[i];
- }
-
private void _initMethodTypeInfos() {
if(_methodDescriptionsByName != null)
return;
@@ -752,96 +757,94 @@ public class TypeDescription {
private void _initMemberTypeInfos() {
TypeInfo typeInfos[] = __getTypeInfos(_class);
- Field fields[] = getFields();
- MemberTypeInfo memberTypeInfos[] = new MemberTypeInfo[fields.length];
+ Field fields[] = _class.getFields();
+ int index = 0;
+ IFieldDescription iFieldDescriptions[] = new IFieldDescription[fields.length];
+
+ _iFieldDescriptionsByName = new Hashtable();
- _memberTypeInfosByName = new Hashtable();
for(int i = 0; i < fields.length; ++ i) {
- MemberTypeInfo memberTypeInfo = null;
+ if((fields[i].getModifiers() & (Modifier.STATIC | Modifier.TRANSIENT)) == 0) { // neither static nor transient ?
- if(_superType != null)
- memberTypeInfo = _superType.getMemberTypeInfo(fields[i].getName());
+ IFieldDescription iFieldDescription = null;
- if(memberTypeInfo == null)
- memberTypeInfo = __findMemberTypeInfo(typeInfos, fields[i].getName());
+ if(_superType != null)
+ iFieldDescription = _superType.getFieldDescription(fields[i].getName());
- if(memberTypeInfo == null)
- memberTypeInfo = new MemberTypeInfo(fields[i].getName(), 0);
+ if(iFieldDescription == null) {
+ MemberTypeInfo memberTypeInfo = __findMemberTypeInfo(typeInfos, fields[i].getName());
- _memberTypeInfosByName.put(memberTypeInfo.getName(), memberTypeInfo);
+ if(memberTypeInfo == null)
+ memberTypeInfo = new MemberTypeInfo(fields[i].getName(), 0);
+
+
+ iFieldDescription = new FieldDescription(memberTypeInfo, fields[i]);
+ }
+
+ _iFieldDescriptionsByName.put(iFieldDescription.getName(), iFieldDescription);
+ iFieldDescriptions[index ++] = iFieldDescription;
+ }
}
+
+ _iFieldDescriptions = new IFieldDescription[index];
+ System.arraycopy(iFieldDescriptions, 0, _iFieldDescriptions, 0, index);
}
- public TypeDescription getSuperType() {
+ public ITypeDescription getSuperType() {
return _superType;
}
- public MethodDescription []getMethodDescriptions() {
+ public IMethodDescription []getMethodDescriptions() {
_initMethodTypeInfos();
- MethodDescription methodDescriptions[] = null;
+ IMethodDescription iMethodDescriptions[] = null;
if(_methodDescriptionsByIndex != null) {
- methodDescriptions = new MethodDescription[_methodDescriptionsByIndex.length];
+ iMethodDescriptions = new IMethodDescription[_methodDescriptionsByIndex.length];
- System.arraycopy(_methodDescriptionsByIndex, 0, methodDescriptions, 0, _methodDescriptionsByIndex.length);
+ System.arraycopy(_methodDescriptionsByIndex, 0, iMethodDescriptions, 0, _methodDescriptionsByIndex.length);
}
- return methodDescriptions;
+ return iMethodDescriptions;
}
- public MethodDescription getMethodDescription(int methodId) {
+ public IMethodDescription getMethodDescription(int methodId) {
_initMethodTypeInfos();
- MethodDescription methodDescription = null;
+ IMethodDescription iMethodDescription = null;
int relMethodId = methodId - (_offset - _methodDescriptionsByIndex.length);
if(relMethodId >= 0 && relMethodId < _methodDescriptionsByIndex.length)
- methodDescription = _methodDescriptionsByIndex[relMethodId];
+ iMethodDescription = _methodDescriptionsByIndex[relMethodId];
+
else if(_superType != null)
- methodDescription = _superType.getMethodDescription(methodId);
+ iMethodDescription = _superType.getMethodDescription(methodId);
- return methodDescription;
+ return iMethodDescription;
}
- public MethodDescription getMethodDescription(String name) {
+ public IMethodDescription getMethodDescription(String name) {
_initMethodTypeInfos();
- MethodDescription methodDescription = (MethodDescription)_methodDescriptionsByName.get(name);
- if(methodDescription == null && _superType != null)
- methodDescription = _superType.getMethodDescription(name);
+ IMethodDescription iMethodDescription = (MethodDescription)_methodDescriptionsByName.get(name);
+ if(iMethodDescription == null && _superType != null)
+ iMethodDescription = _superType.getMethodDescription(name);
- return methodDescription;
+ return iMethodDescription;
}
- public MemberTypeInfo []getMemberTypeInfos() {
- MemberTypeInfo memberTypeInfos[] = null;
-
- if(_memberTypeInfosByName != null) {
- memberTypeInfos = new MemberTypeInfo[_memberTypeInfosByName.size()];
-
- Enumeration elements = _memberTypeInfosByName.elements();
- int i = 0;
- while(elements.hasMoreElements()) {
- memberTypeInfos[i ++] = (MemberTypeInfo)elements.nextElement();
- }
- }
-
- return memberTypeInfos;
+ public IFieldDescription []getFieldDescriptions() {
+ return _iFieldDescriptions;
}
- public MemberTypeInfo getMemberTypeInfo(String name) {
- MemberTypeInfo memberTypeInfo = (MemberTypeInfo)_memberTypeInfosByName.get(name);
- if(memberTypeInfo == null && _superType != null)
- memberTypeInfo = _superType.getMemberTypeInfo(name);
-
- return memberTypeInfo;
- }
+ public IFieldDescription getFieldDescription(String name) {
+ IFieldDescription iFieldDescription = (IFieldDescription)_iFieldDescriptionsByName.get(name);
+ if(iFieldDescription == null && _superType != null)
+ iFieldDescription = _superType.getFieldDescription(name);
- public Field []getFields() {
- return _fields;
+ return iFieldDescription;
}
/**
@@ -859,14 +862,14 @@ public class TypeDescription {
* <p>
* @return the <code>TypeDescription</code>
*/
- public TypeDescription getComponentType() {
- TypeDescription componentTypeDescription = null;
+ public ITypeDescription getComponentType() {
+ ITypeDescription iTypeDescription = null;
Class componentClass = getZClass().getComponentType();
if(componentClass != null)
- componentTypeDescription = getTypeDescription(componentClass);
+ iTypeDescription = getTypeDescription(componentClass);
- return componentTypeDescription;
+ return iTypeDescription;
}
/**
diff --git a/ridljar/com/sun/star/uno/Any.java b/ridljar/com/sun/star/uno/Any.java
index b5091d5fc629..baa12ab40150 100644
--- a/ridljar/com/sun/star/uno/Any.java
+++ b/ridljar/com/sun/star/uno/Any.java
@@ -2,9 +2,9 @@
*
* $RCSfile: Any.java,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: kr $ $Date: 2001-01-16 17:49:37 $
+ * last change: $Author: kr $ $Date: 2001-05-08 09:34:18 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -67,7 +67,7 @@ package com.sun.star.uno;
* The UNO IDL type any is mapped to java type <code>java.lang.Object</code>.
* In special cases it is necessary to have an explicit any.
* <p>
- * @version $Revision: 1.2 $ $ $Date: 2001-01-16 17:49:37 $
+ * @version $Revision: 1.3 $ $ $Date: 2001-05-08 09:34:18 $
* @author Kay Ramme
* @since UDK1.0
*/
@@ -95,13 +95,7 @@ public class Any {
* @deprecated as of UDK 2.0
*/
public Any(Class zInterface, Object object) {
- try {
- _type = new Type(zInterface);
- }
- catch(Throwable throwable) { // can not happen!
- System.err.println(getClass().getName() + ".<init> - unexpected exception:" + throwable);
- }
-
+ _type = new Type(zInterface);
_object = object;
}
@@ -113,26 +107,6 @@ public class Any {
/**
* Gets the type of the any.
* <p>
- * @deprecated as of UDK 2.0
- * <p>
- * @return the type of the any.
- */
- public Class getInterface() {
- Class zClass = null;
-
- try {
- zClass = _type.getDescription();
- }
- catch(ClassNotFoundException classNotFoundException) { // can not happen
- System.err.println(getClass().getName() + ".getInterface - unexpected exception:" + classNotFoundException);
- }
-
- return zClass;
- }
-
- /**
- * Gets the type of the any.
- * <p>
* @return the type of the any.
*/
public Type getType() {
diff --git a/ridljar/com/sun/star/uno/IFieldDescription.java b/ridljar/com/sun/star/uno/IFieldDescription.java
new file mode 100644
index 000000000000..7562ff9aae85
--- /dev/null
+++ b/ridljar/com/sun/star/uno/IFieldDescription.java
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * $RCSfile: IFieldDescription.java,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: kr $ $Date: 2001-05-08 09:34:18 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+package com.sun.star.uno;
+
+
+import java.lang.reflect.Field;
+
+/**
+ * The <code>IFieldDescription</code> describes non
+ * method members.
+ * <p>
+ * @version $Revision: 1.1 $ $ $Date: 2001-05-08 09:34:18 $
+ * @author Kay Ramme
+ * @since UDK3.0
+ */
+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
new file mode 100644
index 000000000000..d6579866640b
--- /dev/null
+++ b/ridljar/com/sun/star/uno/IMemberDescription.java
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * $RCSfile: IMemberDescription.java,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: kr $ $Date: 2001-05-08 09:34:18 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+package com.sun.star.uno;
+
+/**
+ * The <code>IMemberDescription</code> is the base interface
+ * for members of UNO types <code>ITypeDescriptions</code>.
+ * <p>
+ * @version $Revision: 1.1 $ $ $Date: 2001-05-08 09:34:18 $
+ * @author Kay Ramme
+ * @since UDK3.0
+ */
+public interface IMemberDescription {
+ /**
+ * Gives the name of this member.
+ * <p>
+ * @return the name
+ */
+ String getName();
+
+ /**
+ * Indicates if this member is unsigned.
+ * <p>
+ * @return the unsigned state
+ */
+ boolean isUnsigned();
+
+ /**
+ * Indicates if this member is an any.
+ * <p>
+ * @return the any state
+ */
+ boolean isAny();
+
+ /**
+ * Indicates if this member is an interface.
+ * <p>
+ * @return the interface state
+ */
+ boolean isInterface();
+}
diff --git a/ridljar/com/sun/star/uno/IMethodDescription.java b/ridljar/com/sun/star/uno/IMethodDescription.java
new file mode 100644
index 000000000000..66184da81e20
--- /dev/null
+++ b/ridljar/com/sun/star/uno/IMethodDescription.java
@@ -0,0 +1,130 @@
+/*************************************************************************
+ *
+ * $RCSfile: IMethodDescription.java,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: kr $ $Date: 2001-05-08 09:34:18 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+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.
+ * <p>
+ * @version $Revision: 1.1 $ $ $Date: 2001-05-08 09:34:18 $
+ * @author Kay Ramme
+ * @since UDK3.0
+ */
+public interface IMethodDescription extends IMemberDescription {
+ /**
+ * Indicates if this method is <code>oneWay</code>,
+ * respectivly if this method may become executed asynchronously.
+ * <p>
+ * @return true means may execute asynchronously .
+ */
+ boolean isOneway();
+
+ /**
+ * Gives the relative index of this method in the declaring
+ * interface.
+ * <p>
+ * @return the realtive index of this method
+ */
+ int getIndex();
+
+ /**
+ * Indicates if this method is const.
+ * <p>
+ * @return true means it is const.
+ */
+ boolean isConst();
+
+ /**
+ * Gives any array of <code>ITypeDescription> of
+ * the [in] parameters.
+ * <p>
+ * @return the in parameters
+ */
+ ITypeDescription[] getInSignature();
+
+ /**
+ * Gives any array of <code>ITypeDescription> of
+ * the [out] parameters.
+ * <p>
+ * @return the out parameters
+ */
+ ITypeDescription[] getOutSignature();
+
+ /**
+ * Gives the <code>ITypeDescription</code> of
+ * the return type.
+ * <p>
+ * @return the return type <code>ITypeDescription</code>
+ */
+ ITypeDescription getReturnSignature();
+
+ /**
+ * Gives native java method of this method.
+ * <p>
+ * @return the java methodd
+ */
+ Method getMethod();
+}
diff --git a/ridljar/com/sun/star/uno/ITypeDescription.java b/ridljar/com/sun/star/uno/ITypeDescription.java
new file mode 100644
index 000000000000..7788076df264
--- /dev/null
+++ b/ridljar/com/sun/star/uno/ITypeDescription.java
@@ -0,0 +1,161 @@
+/*************************************************************************
+ *
+ * $RCSfile: ITypeDescription.java,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: kr $ $Date: 2001-05-08 09:34:18 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+package com.sun.star.uno;
+
+/**
+ * The <code>ITypeDescription</code> allows to examine a type
+ * in detail (e.g. it is used for marshaling/unmarshaling).
+ * <p>
+ * @version $Revision: 1.1 $ $ $Date: 2001-05-08 09:34:18 $
+ * @author Kay Ramme
+ * @since UDK3.0
+ */
+public interface ITypeDescription {
+ /**
+ * Gets the <code>ITypeDescription</code> of the
+ * super, if it exists.
+ * <p>
+ * @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>.
+ * <p>
+ * @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>.
+ * <p>
+ * @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>.
+ * <p>
+ * @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>.
+ * <p>
+ * @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>.
+ * <p>
+ * @return the <code>IFieldDescription</code>.
+ */
+ IFieldDescription getFieldDescription(String name);
+
+ /**
+ * Gets the IDL <code>TypeClass</code> of the type.
+ * <p>
+ * @return the <code>TypeClass</code>.
+ */
+ TypeClass getTypeClass();
+
+ /**
+ * Gets the component <code>ITypeDescription</code> if
+ * this is an array type, otherwise returns <code>null</code>.
+ * <p>
+ * @return the <code>ITypeDescription</code>
+ */
+ ITypeDescription getComponentType();
+
+ /**
+ * Gets the type name.
+ * <p>
+ * @return the type name.
+ */
+ String getTypeName();
+
+ /**
+ * Gets the array type name.
+ * <p>
+ * @return the array type name.
+ */
+ String getArrayTypeName();
+
+ /**
+ * Gets the corresponding java class for the type.
+ * <p>
+ * @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 d3b1f6464c6c..9e7e64163192 100644
--- a/ridljar/com/sun/star/uno/Type.java
+++ b/ridljar/com/sun/star/uno/Type.java
@@ -2,9 +2,9 @@
*
* $RCSfile: Type.java,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: kr $ $Date: 2001-02-19 10:07:03 $
+ * last change: $Author: kr $ $Date: 2001-05-08 09:34:18 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -62,9 +62,8 @@
package com.sun.star.uno;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
-//import java.lang.reflect.InstantiationException;
+
+import java.util.Hashtable;
/**
* The Type class represents the IDL builtin type <code>type</code>.
@@ -72,13 +71,9 @@ import java.lang.reflect.InvocationTargetException;
* The IDL type is not directly mapped to <code>java.lang.Class</code>,
* because it can be necessary to describe a type which is unknown
* to the java runtime system, e.g. for delaying the need of a class,
- * so that it is possible to generate it one the fly.
- * <p>
- * The current implementations holds various <code>static</code> helper
- * methods, which may be changed or moved in the furture, so please
- * do not use these methods.
+ * so that it is possible to generate it on the fly.
* <p>
- * @version $Revision: 1.4 $ $ $Date: 2001-02-19 10:07:03 $
+ * @version $Revision: 1.5 $ $ $Date: 2001-05-08 09:34:18 $
* @author Markus Meyer
* @author Kay Ramme
* @since UDK1.0
@@ -87,326 +82,237 @@ public class Type {
/**
* When set to true, enables various debugging output.
*/
- public static final boolean DEBUG = false;
-
- static private Method __getFromClass;
- static private Method __getFromName;
- static private Method __getFromTypeClass;
-
- /* these variables will be removed with UDK 3.0 */
- static private Method __isTypeClassSimple;
- static private Method __getTypeClass;
- static private Method __getTypeName;
- static private Method __getArrayTypeName;
- static private Method __getZClass;
+ private static final boolean DEBUG = false;
+
+ static private final String[] __typeClassToTypeName = new String[]{
+ "void",
+ "char",
+ "boolean",
+ "byte",
+ "short",
+ "unsigned short",
+ "long",
+ "unsigned long",
+ "hyper",
+ "unsigned hyper",
+ "float",
+ "double",
+ "string",
+ "type",
+ "any"
+ };
+
+ static private final Hashtable __javaClassToTypeName = new Hashtable();
+
+ static private final Hashtable __typeNameToTypeClass = new Hashtable();
static {
- if(DEBUG) System.err.println("##### com.sun.star.uno.Type.<sinit>");
-
- Throwable throwable = null;
-
- try {
- Class typeDesc_Class = Class.forName("com.sun.star.lib.uno.typedesc.TypeDescription");
-
- __getFromName = typeDesc_Class.getMethod("getTypeDescription", new Class[]{String.class});
- __getFromClass = typeDesc_Class.getMethod("getTypeDescription", new Class[]{Class.class});
- __getFromTypeClass = typeDesc_Class.getMethod("getTypeDescription", new Class[]{TypeClass.class});
-
- __isTypeClassSimple = typeDesc_Class.getMethod("isTypeClassSimple", new Class[]{TypeClass.class});
-
- __getTypeClass = typeDesc_Class.getMethod("getTypeClass", new Class[]{});
- __getTypeName = typeDesc_Class.getMethod("getTypeName", new Class[]{});
- __getArrayTypeName = typeDesc_Class.getMethod("getArrayTypeName", new Class[]{});
- __getZClass = typeDesc_Class.getMethod("getZClass", new Class[]{});
- }
- catch(NoSuchMethodException noSuchMethodException) {
- throwable = noSuchMethodException;
- }
- catch(ClassNotFoundException classNotFoundException) {
- throwable = classNotFoundException;
- }
-
- if(throwable != null) {
- String message = "com.sun.star.uno.Type.<sinit> - exception:" + throwable;
- throwable.printStackTrace();
- System.err.println(message);
- throw new java.lang.RuntimeException(message);
- }
- }
-
-
-
- /**
- * Determines if the given <code>TypeClass</code> is simple.
- * <p>
- * @deprecated as of UDK 2.0 (moved to com.sun.star.lib.uno.typedesc.TypeDescription)
- * <p>
- * @return <code>true</code> means simple
- * @param typeClass the IDL typeClass
- */
- static public boolean isTypeClassSimple(TypeClass typeClass) {
- boolean isSimple = false;
-
- try {
- isSimple = ((Boolean)__isTypeClassSimple.invoke(null, new Object[]{typeClass})).booleanValue();
- }
- catch(IllegalAccessException illegalAccessException) {
- }
- catch(InvocationTargetException invocationTargetException) {
- }
-
- return isSimple;
- }
-
-
-
- protected Object _typeDescription;
-
- protected void init(Class zClass) {
- Throwable throwable = null;
-
- try {
- _typeDescription = __getFromClass.invoke(null, new Object[]{zClass});
- }
- catch(InvocationTargetException invocationTargetException) {
- throwable = invocationTargetException.getTargetException();
- }
- catch(IllegalAccessException illegalAccessException) {
- throwable = illegalAccessException;
- }
-
- if(throwable != null)
- throw new java.lang.RuntimeException(getClass().getName() + ".<init>(Class) - fatal - couldn't create typedescription - " + throwable + " " + zClass);
+ for(int i = 0; i < __typeClassToTypeName.length; ++ i)
+ __typeNameToTypeClass.put(__typeClassToTypeName[i], TypeClass.fromInt(i));
+
+ __javaClassToTypeName.put(Void.class, "void");
+ __javaClassToTypeName.put(void.class, "void");
+ __javaClassToTypeName.put(Character.class, "char");
+ __javaClassToTypeName.put(char.class, "char");
+ __javaClassToTypeName.put(Boolean.class, "boolean");
+ __javaClassToTypeName.put(boolean.class, "boolean");
+ __javaClassToTypeName.put(Byte.class, "byte");
+ __javaClassToTypeName.put(byte.class, "byte");
+ __javaClassToTypeName.put(Short.class, "short");
+ __javaClassToTypeName.put(short.class, "short");
+ __javaClassToTypeName.put(Integer.class, "long");
+ __javaClassToTypeName.put(int.class, "long");
+ __javaClassToTypeName.put(Long.class, "hyper");
+ __javaClassToTypeName.put(long.class, "hyper");
+ __javaClassToTypeName.put(Float.class, "float");
+ __javaClassToTypeName.put(float.class, "float");
+ __javaClassToTypeName.put(Double.class, "double");
+ __javaClassToTypeName.put(double.class, "double");
+ __javaClassToTypeName.put(String.class, "string");
+ __javaClassToTypeName.put(Type.class, "type");
+ __javaClassToTypeName.put(Any.class, "any");
+ __javaClassToTypeName.put(Object.class, "any");
}
- protected void init(TypeClass typeClass) {
- Throwable throwable = null;
-
- try {
- _typeDescription = __getFromTypeClass.invoke(null, new Object[]{typeClass});
- }
- catch(InvocationTargetException invocationTargetException) {
- throwable = invocationTargetException.getTargetException();
- }
- catch(IllegalAccessException illegalAccessException) {
- throwable = illegalAccessException;
- }
-
- if(throwable != null)
- throw new java.lang.RuntimeException(getClass().getName() + ".<init>(TypeClass) - fatal - couldn't create typedescription - " + throwable + " " + typeClass);
+ static private boolean __isTypeClassPrimitive(TypeClass typeClass) {
+ return typeClass.getValue() < 15;
}
- protected void init(String typeName) throws ClassNotFoundException {
- Throwable throwable = null;
- try {
- _typeDescription = __getFromName.invoke(null, new Object[]{typeName});
- }
- catch(InvocationTargetException invocationTargetException) {
- throwable = invocationTargetException.getTargetException();
- }
- catch(IllegalAccessException illegalAccessException) {
- throwable = illegalAccessException;
- }
+ protected String _typeName;
+ protected Class _class;
+ protected TypeClass _typeClass;
- if(throwable != null)
- throw new java.lang.ClassNotFoundException(getClass().getName() + ".<init>(String) - fatal - couldn't create typedescription - " + throwable);
- }
+ protected ITypeDescription _iTypeDescription;
- /**
- * Constructs a new <code>Type</code> with
- * the given type description.
- * <p>
- * @param typeDescription a type description
- */
- public Type(Object typeDescription) {
- _typeDescription = typeDescription;
- }
/**
* Constructs a new <code>Type</code> which defaults
* to <code>void</code>
* <p>
+ * @since UDK3.0
*/
public Type() {
- init(void.class);
+ this(void.class);
}
+
/**
* Constructs a new <code>Type</code> with
* the given <code>class</code>.
* <p>
+ * @since UDK3.0
* @param zClass the class of this type
*/
- public Type(Class zClass) throws Exception { // the exception is only for compatibility reasons
- init(zClass);
+ public Type(Class zClass) {
+ _class = zClass;
+
+ _typeName = (String)__javaClassToTypeName.get(zClass);
+ if(_typeName != null)
+ _typeClass = (TypeClass)__typeNameToTypeClass.get(_typeName);
+
+ else {
+ if(Enum.class.isAssignableFrom(zClass)) {
+ _typeClass = TypeClass.ENUM;
+ _typeName = zClass.getName();
+ }
+ else if(Union.class.isAssignableFrom(zClass)) {
+ _typeClass = TypeClass.UNION;
+ _typeName = zClass.getName();
+ }
+ else if(zClass.isInterface()) {
+ _typeClass = TypeClass.INTERFACE;
+ _typeName = zClass.getName();
+ }
+ else if(zClass.isArray()) {
+ _typeClass = TypeClass.SEQUENCE;
+ _typeName = "[]" + (new Type(_class.getComponentType()).getTypeName());
+ }
+ else if(Throwable.class.isAssignableFrom(zClass)) {
+ _typeClass = TypeClass.EXCEPTION;
+ _typeName = zClass.getName();
+ }
+ else {
+ _typeClass = TypeClass.UNKNOWN;
+ _typeName = zClass.getName();
+ }
+ }
}
/**
* Constructs a new <code>Type</code> with
- * the given type name.
+ * the given type description.
* <p>
- * @param typeName the name of this type
+ * @since UDK3.0
+ * @param typeDescription a type description
*/
- public Type(String typeName) throws com.sun.star.uno.Exception, ClassNotFoundException { // the com.sun.star.uno.Exception is only for compatibility reasons
- init(typeName);
+ public Type(ITypeDescription iTypeDescription) {
+ _typeName = iTypeDescription.getTypeName();
+ _typeClass = iTypeDescription.getTypeClass();
+ _iTypeDescription = iTypeDescription;
}
/**
* Constructs a new <code>Type</code> with
- * the given <code>TypeClass</code>.
+ * the given type name.
* <p>
- * @param typeClass the <code>TypeClass</code> of this type
+ * @since UDK3.0
+ * @param typeName the name of this type
*/
- public Type(TypeClass typeClass) throws com.sun.star.uno.Exception {
- init(typeClass);
- }
+ public Type(String typeName) {
+ _typeClass = (TypeClass)__typeNameToTypeClass.get(typeName);
- /**
- * @deprecated as of UDK 2.0
- */
- public Type(TypeClass typeClass, String typeName) throws com.sun.star.uno.Exception {
- if(typeName != null) {
- try {
- init(typeName);
- }
- catch(ClassNotFoundException classNotFoundException) {
- throw new Exception(classNotFoundException.toString());
- }
- }
- else
- init(typeClass);
- }
+ if(_typeClass == null)
+ _typeClass = TypeClass.UNKNOWN;
- /**
- * @deprecated as of UDK 2.0
- */
- public Type(TypeClass typeClass, String typeName, Class zClass) throws com.sun.star.uno.Exception {
- this(typeClass, typeName);
+ _typeName = typeName;
}
/**
- * @deprecated as of UDK 2.0
+ * Constructs a new <code>Type</code> with
+ * the given <code>TypeClass</code>.
+ * <p>
+ * @since UDK3.0
+ * @param typeClass the <code>TypeClass</code> of this type
*/
- public Type(TypeClass typeClass, String typeName, String arrayTypeName, Class zClass) throws com.sun.star.uno.Exception {
- this(typeClass, typeName);
+ public Type(TypeClass typeClass) throws IllegalArgumentException {
+ if(__isTypeClassPrimitive(typeClass)) {
+ _typeClass = typeClass;
+ _typeName = __typeClassToTypeName[typeClass.getValue()];
+ }
+ else
+ throw new IllegalArgumentException(typeClass + " is not primitive");
}
-
/**
- * Gives the the type description of this type.
+ * Gives the type description of this type.
* <p>
+ * @since UDK3.0
* @return the type description
*/
- public Object getTypeDescription() {
- return _typeDescription;
+ public ITypeDescription getTypeDescription() {
+ return _iTypeDescription;
}
-
-
/**
- * Gets the IDL <code>TypeClass</code> of the type.
+ * Sets the type description for this type.
* <p>
- * @deprecated as of UDK 2.0
- * <p>
- * @return the <code>TypeClass</code>.
+ * @since UDK3.0
+ * @return the type description
*/
- public TypeClass getTypeClass() {
- TypeClass typeClass = null;
-
- try {
- typeClass = (TypeClass)__getTypeClass.invoke(_typeDescription, null);
- }
- catch(IllegalAccessException illegalAccessException) {
- }
- catch(InvocationTargetException invocationTargetException) {
- }
-
- return typeClass;
+ public void setTypeDescription(ITypeDescription iTypeDescription) {
+ _iTypeDescription = iTypeDescription;
}
/**
* Gets the type name.
+ * Returns <code>null</code> if this
+ * type has not been constructed by name.
* <p>
- * @deprecated as of UDK 2.0
- * <p>
+ * @since UDK1.0
* @return the type name.
*/
public String getTypeName() {
- String typeName = null;
-
- try {
- typeName = (String)__getTypeName.invoke(_typeDescription, null);
- }
- catch(IllegalAccessException illegalAccessException) {
- }
- catch(InvocationTargetException invocationTargetException) {
- }
-
- return typeName;
+ return _typeName;
}
-
/**
- * Gets the array type name.
+ * Gets the class.
+ * Returns <code>null</code> if this
+ * type has not been constructed by <code>Class</code>.
* <p>
- * @deprecated as of UDK 2.0
- * <p>
- * @return the array type name.
+ * @since UDK1.0
+ * @return the type name.
*/
- public String getArrayTypeName() {
- String arrayTypeName = null;
-
- try {
- arrayTypeName = (String)__getArrayTypeName.invoke(_typeDescription, null);
- }
- catch(IllegalAccessException illegalAccessException) {
- }
- catch(InvocationTargetException invocationTargetException) {
- }
-
- return arrayTypeName;
+ public Class getZClass() {
+ return _class;
}
/**
- * Gets the corresponding java class for the type.
- * <p>
- * @deprecated as of UDK 2.0
+ * Gets the typeClass.
+ * Returns <code>null</code> if this
+ * type has not been constructed by <code>TypeClass</code>.
* <p>
- * @return the corresponding java class.
+ * @since UDK1.0
+ * @return the type name.
*/
- public Class getDescription() throws ClassNotFoundException {
- Class zClass = null;
-
- try {
- zClass = (Class)__getZClass.invoke(_typeDescription, null);
- }
- catch(IllegalAccessException illegalAccessException) {
- }
- catch(InvocationTargetException invocationTargetException) {
- }
-
- return zClass;
+ public TypeClass getTypeClass() {
+ return _typeClass;
}
-
-
-
/**
* Compares two types.
* <p>
* @return true, if the given type and this type are equal
*/
- public boolean equals(Object type) {
+ public boolean equals(Object object) {
boolean result = false;
- if(type != null) {
- result = _typeDescription == ((Type)type)._typeDescription;
+ Type type = (Type)object;
- if(!result && _typeDescription != null)
- result = _typeDescription.equals(((Type)type)._typeDescription);
- }
+ if(type != null)
+ result = _typeName.equals(type._typeName);
return result;
}
@@ -417,7 +323,7 @@ public class Type {
* @return the hash code
*/
public int hashCode() {
- return _typeDescription.hashCode();
+ return _typeName.hashCode();
}
/**
@@ -426,7 +332,7 @@ public class Type {
* @return a descriptive <code>String</code>
*/
public String toString() {
- return "Type<" + _typeDescription + ">";
+ return "Type<" + _typeName + ">";
}
}