18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 22bde8e466a4451c7319e3a072d118917957d6554Steve Block * Copyright (C) 2003, 2004, 2005, 2007, 2009, 2010 Apple Inc. All rights reserved. 32bde8e466a4451c7319e3a072d118917957d6554Steve Block * Copyright 2010, The Android Open Source Project 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 242bde8e466a4451c7319e3a072d118917957d6554Steve Block * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 272bde8e466a4451c7319e3a072d118917957d6554Steve Block#ifndef JavaMethodJobject_h 282bde8e466a4451c7319e3a072d118917957d6554Steve Block#define JavaMethodJobject_h 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 302bde8e466a4451c7319e3a072d118917957d6554Steve Block#if ENABLE(JAVA_BRIDGE) 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 322bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "JavaMethod.h" 332bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "JavaString.h" 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 352bde8e466a4451c7319e3a072d118917957d6554Steve Block#include <wtf/text/CString.h> 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 372bde8e466a4451c7319e3a072d118917957d6554Steve Blocknamespace JSC { 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 392bde8e466a4451c7319e3a072d118917957d6554Steve Blocknamespace Bindings { 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 412bde8e466a4451c7319e3a072d118917957d6554Steve Blockclass JavaMethodJobject : public JavaMethod { 422bde8e466a4451c7319e3a072d118917957d6554Steve Blockpublic: 432bde8e466a4451c7319e3a072d118917957d6554Steve Block JavaMethodJobject(JNIEnv*, jobject); 442bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual ~JavaMethodJobject(); 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 462bde8e466a4451c7319e3a072d118917957d6554Steve Block // JavaMethod implementation 472bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual String name() const { return m_name.impl(); } 482bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual RuntimeType returnTypeClassName() const { return m_returnTypeClassName.utf8(); } 492bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual String parameterAt(int i) const { return m_parameters[i]; } 502bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual const char* signature() const; 512bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual JavaType returnType() const { return m_returnType; } 522bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual bool isStatic() const { return m_isStatic; } 53635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 542bde8e466a4451c7319e3a072d118917957d6554Steve Block // Method implementation 552bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual int numParameters() const { return m_parameters.size(); } 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 572bde8e466a4451c7319e3a072d118917957d6554Steve Blockprivate: 582bde8e466a4451c7319e3a072d118917957d6554Steve Block Vector<String> m_parameters; 592bde8e466a4451c7319e3a072d118917957d6554Steve Block JavaString m_name; 602bde8e466a4451c7319e3a072d118917957d6554Steve Block mutable char* m_signature; 612bde8e466a4451c7319e3a072d118917957d6554Steve Block JavaString m_returnTypeClassName; 622bde8e466a4451c7319e3a072d118917957d6554Steve Block JavaType m_returnType; 632bde8e466a4451c7319e3a072d118917957d6554Steve Block bool m_isStatic; 642bde8e466a4451c7319e3a072d118917957d6554Steve Block}; 652bde8e466a4451c7319e3a072d118917957d6554Steve Block 662bde8e466a4451c7319e3a072d118917957d6554Steve Block} // namespace Bindings 672bde8e466a4451c7319e3a072d118917957d6554Steve Block 682bde8e466a4451c7319e3a072d118917957d6554Steve Block} // namespace JSC 692bde8e466a4451c7319e3a072d118917957d6554Steve Block 702bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif // ENABLE(JAVA_BRIDGE) 712bde8e466a4451c7319e3a072d118917957d6554Steve Block 722bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif // JavaMethodJobject_h 73