/* * 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.lib.uno.typedesc; import java.lang.reflect.Method; /** * 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, TypeDescription[] inSignature, TypeDescription[] outSignature, TypeDescription returnSignature, Method method) { this.name = name; this.index = index; this.oneway = oneway; this.inSignature = inSignature; this.outSignature = outSignature; this.returnSignature = returnSignature; this.method = method; } MethodDescription(MethodDescription other, int index) { this( other.getName(), index, other.isOneway(), other.getInSignature(), other.getOutSignature(), other.getReturnSignature(), other.getMethod()); } public String getName() { return name; } public boolean isUnsigned() { return MemberDescriptionHelper.isUnsigned(returnSignature); } public boolean isAny() { return MemberDescriptionHelper.isAny(returnSignature); } public boolean isInterface() { return MemberDescriptionHelper.isInterface(returnSignature); } public int getIndex() { return index; } /** * Indicates if this method is oneWay, * 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; } /** * Gives any array of TypeDescription of * the [in] parameters. * @return the in parameters */ public TypeDescription[] getInSignature() { return inSignature; } /** * Gives any array of TypeDescription of * the [out] parameters. * @return the out parameters */ public TypeDescription[] getOutSignature() { return outSignature; } /** * Gives the TypeDescription of * the return type. * @return the return type TypeDescription */ public TypeDescription getReturnSignature() { return returnSignature; } /** * Gives native java method of this method. * @return the java method */ public Method getMethod() { return method; } public static final int ID_QUERY_INTERFACE = 0; public static final int ID_ACQUIRE = 1; public static final int ID_RELEASE = 2; private final String name; private final int index; private final boolean oneway; private final TypeDescription[] inSignature; private final TypeDescription[] outSignature; private final TypeDescription returnSignature; private final Method method; }