package com.nativelibs4java.mono.library;
/**
 * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
 * a tool written by <a href="http://ochafik.free.fr/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
 * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a>, <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
 */
public class MonoReflectionMethodAux extends com.ochafik.lang.jnaerator.runtime.Structure<MonoReflectionMethodAux, MonoReflectionMethodAux.ByValue, MonoReflectionMethodAux.ByReference> {
	/// C type : char**
	public com.sun.jna.ptr.PointerByReference param_names;
	/// C type : MonoMarshalSpec**
	public com.nativelibs4java.mono.library.MonoMarshalSpec.ByReference[] param_marshall;
	/// C type : MonoCustomAttrInfo**
	public com.nativelibs4java.mono.library.MonoCustomAttrInfo.ByReference[] param_cattr;
	/// C type : char**
	public com.sun.jna.ptr.PointerByReference param_defaults;
	/// C type : int*
	public com.sun.jna.ptr.IntByReference param_default_types;
	/// C type : char*
	public com.sun.jna.Pointer dllentry;
	/// C type : char*
	public com.sun.jna.Pointer dll;
	public MonoReflectionMethodAux() {
		super();
	}
	/**
	 * @param param_names C type : char**<br>
	 * @param param_marshall C type : MonoMarshalSpec**<br>
	 * @param param_cattr C type : MonoCustomAttrInfo**<br>
	 * @param param_defaults C type : char**<br>
	 * @param param_default_types C type : int*<br>
	 * @param dllentry C type : char*<br>
	 * @param dll C type : char*
	 */
	public MonoReflectionMethodAux(com.sun.jna.ptr.PointerByReference param_names, com.nativelibs4java.mono.library.MonoMarshalSpec.ByReference param_marshall[], com.nativelibs4java.mono.library.MonoCustomAttrInfo.ByReference param_cattr[], com.sun.jna.ptr.PointerByReference param_defaults, com.sun.jna.ptr.IntByReference param_default_types, com.sun.jna.Pointer dllentry, com.sun.jna.Pointer dll) {
		super();
		this.param_names = param_names;
		if (param_marshall.length != this.param_marshall.length) 
			throw new java.lang.IllegalArgumentException("Wrong array size !");
		this.param_marshall = param_marshall;
		if (param_cattr.length != this.param_cattr.length) 
			throw new java.lang.IllegalArgumentException("Wrong array size !");
		this.param_cattr = param_cattr;
		this.param_defaults = param_defaults;
		this.param_default_types = param_default_types;
		this.dllentry = dllentry;
		this.dll = dll;
	}
	protected ByReference newByReference() { return new ByReference(); }
	protected ByValue newByValue() { return new ByValue(); }
	protected MonoReflectionMethodAux newInstance() { return new MonoReflectionMethodAux(); }
	public static MonoReflectionMethodAux[] newArray(int arrayLength) {
		return com.ochafik.lang.jnaerator.runtime.Structure.newArray(MonoReflectionMethodAux.class, arrayLength);
	}
	public static class ByReference extends MonoReflectionMethodAux implements com.sun.jna.Structure.ByReference {}
	public static class ByValue extends MonoReflectionMethodAux implements com.sun.jna.Structure.ByValue {}
}
