001    /*******************************************************************************
002     * Copyright (C) 2009-2011 FuseSource Corp.
003     * Copyright (c) 2004, 2008 IBM Corporation and others.
004     *
005     * All rights reserved. This program and the accompanying materials
006     * are made available under the terms of the Eclipse Public License v1.0
007     * which accompanies this distribution, and is available at
008     * http://www.eclipse.org/legal/epl-v10.html
009     *
010     *******************************************************************************/
011    package org.fusesource.hawtjni.generator.model;
012    
013    import java.util.List;
014    
015    import org.fusesource.hawtjni.runtime.ArgFlag;
016    import org.fusesource.hawtjni.runtime.MethodFlag;
017    
018    /**
019     * 
020     * @author <a href="http://hiramchirino.com">Hiram Chirino</a>
021     */
022    public interface JNIMethod {
023    
024        public boolean getFlag(MethodFlag flag);
025    
026        public String getName();
027    
028        public int getModifiers();
029    
030        public boolean isNativeUnique();
031    
032        public JNIType getReturnType32();
033    
034        public JNIType getReturnType64();
035    
036        public List<JNIParameter> getParameters();
037    
038        public List<JNIType> getParameterTypes();
039    
040        public List<JNIType> getParameterTypes64();
041    
042        public JNIClass getDeclaringClass();
043    
044        public String getAccessor();
045    
046        public String getConditional();
047    
048        public String getCopy();
049    
050        public String[] getCallbackTypes();
051        public ArgFlag[][] getCallbackFlags();
052    
053        public String getCast();
054        
055        public boolean isPointer();
056    }