/* * 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 ITypeDescription 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 ITypeDescription of the * super, if it exists. *

* @return the ITypeDescription. */ ITypeDescription getSuperType(); /** * Gets the IMethodDescription for every * method, if this type is an interface. Otherwise * returns null. *

* @return the IMethodDescription[]. */ IMethodDescription []getMethodDescriptions(); /** * Gets the IMethodDescription for the * method with index methodId, if it exists, otherwise * returns null. *

* @return the IMethodDescription. */ IMethodDescription getMethodDescription(int methodId); /** * Gets the IMethodDescription for the * method with the name name, if it exists, * otherwise returns null. *

* @return the IMethodDescription. */ IMethodDescription getMethodDescription(String name); /** * Gets the IFieldDescription for every * field, if this type is an interface. Otherwise * returns null. *

* @return the IFieldDescription[]. */ IFieldDescription []getFieldDescriptions(); /** * Gets the IFieldDescription for the * field with the name name, if it exists, * otherwise returns null. *

* @return the IFieldDescription. */ IFieldDescription getFieldDescription(String name); /** * Gets the IDL TypeClass of the type. *

* @return the TypeClass. */ TypeClass getTypeClass(); /** * Gets the component ITypeDescription if * this is an array type, otherwise returns null. *

* @return the ITypeDescription */ ITypeDescription getComponentType(); /** * Gets the (UNO) type name. * *

The following table lists how UNO types map to type names:

* * * * * * * * * * * * * * * * "hyper" * * "unsigned hyper" * * "float" * "double" * "string" * "type" * "any" * * * * * * * * * * * * * * * * * * * * *
UNO typetype name
VOID"void"
BOOLEAN"boolean"
CHAR"char"
BYTE"byte"
SHORT"short"
UNSIGNED SHORT"unsigned short"
LONG"long"
UNSIGNED LONG"unsigned long"
HYPER
UNSIGNED HYPER
FLOAT
DOUBLE
STRING
TYPE
ANY
sequence type of base type T"[]" followed by type name for T
enum type named NN (see below)
struct type named NN (see below)
exception type named N * N (see below)
interface type named NN (see below)
*

For a UNO type named N, consisting of a sequence of module * names M1, ..., Mn followed by * a simple name S, the corresponding type name consists of the * same sequence of module names and simple name, with "." * seperating the individual elements.

* * @return the type name. */ String getTypeName(); /** * Gets the (Java) array type name. * *

The array type name is defined to be the Java class name (as returned * by Class.forName) of the Java array class that corresponds * to the UNO sequence type with this type (the UNO type represented by this * ITypeDescription instance) as base type. For an * ITypeDescription instance representing the UNO type VOID, * the array type name is defined to be * "[Ljava.lang.Void;".

* * @return the array type name. */ String getArrayTypeName(); /** * Gets the corresponding java class for the type. *

* @return the corresponding java class. */ Class getZClass(); }