18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
24e226d42cbe1a5d3bd6b7e92663df661fc14adc3Steve Block * Copyright (C) 2003, 2004, 2005, 2007, 2009, 2010 Apple Inc. All rights reserved.
34e226d42cbe1a5d3bd6b7e92663df661fc14adc3Steve 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
244e226d42cbe1a5d3bd6b7e92663df661fc14adc3Steve Block * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
2781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#ifndef JavaMethod_h
2881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#define JavaMethod_h
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3021939df44de1705786c545cd1bf519d47250322dBen Murdoch#if ENABLE(JAVA_BRIDGE)
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
324aeef553983e9d7a42b18646498bbd4b5a1c8c0aSteve Block#include "Bridge.h"
332bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "JavaType.h"
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
352bde8e466a4451c7319e3a072d118917957d6554Steve Block#include <wtf/text/WTFString.h>
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
374e226d42cbe1a5d3bd6b7e92663df661fc14adc3Steve Blocknamespace JSC {
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
394e226d42cbe1a5d3bd6b7e92663df661fc14adc3Steve Blocknamespace Bindings {
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef const char* RuntimeType;
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
434e226d42cbe1a5d3bd6b7e92663df661fc14adc3Steve Blockclass JavaMethod : public Method {
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic:
452daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    virtual ~JavaMethod() {}
462daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch
472bde8e466a4451c7319e3a072d118917957d6554Steve Block    virtual String name() const = 0;
482bde8e466a4451c7319e3a072d118917957d6554Steve Block    virtual RuntimeType returnTypeClassName() const = 0;
492bde8e466a4451c7319e3a072d118917957d6554Steve Block    virtual String parameterAt(int) const = 0;
502bde8e466a4451c7319e3a072d118917957d6554Steve Block    virtual const char* signature() const = 0;
512bde8e466a4451c7319e3a072d118917957d6554Steve Block    virtual JavaType returnType() const = 0;
522bde8e466a4451c7319e3a072d118917957d6554Steve Block    virtual bool isStatic() const = 0;
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project};
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace Bindings
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace JSC
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5921939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif // ENABLE(JAVA_BRIDGE)
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#endif // JavaMethod_h
62