/* * 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. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Mapping from UNO types to type names
UNO typetype name
VOID"void"
BOOLEAN"boolean"
CHAR"char"
BYTE"byte"
SHORT"short"
UNSIGNED SHORT"unsigned short"
LONG"long"
UNSIGNED LONG"unsigned long"
HYPER"hyper"
UNSIGNED HYPER"unsigned hyper"
FLOAT"float"
DOUBLE"double"
STRING"string"
TYPE"type"
ANY"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 NN (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 "." * separating 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(); }