<?xml version="1.0" encoding="UTF-8"?>
<!--
	Kernel API
	
	Copyright 2015-2022 MicroEJ Corp. All rights reserved.
	Use of this source code is governed by a BSD-style license that can be found with this software.
-->
<require>
	<type name="ej.bon.ByteArray"/>
	<field name="ej.bon.ByteArray.BIG_ENDIAN"/>
	<field name="ej.bon.ByteArray.BYTE_SIZE"/>
	<field name="ej.bon.ByteArray.CHAR_SIZE"/>
	<field name="ej.bon.ByteArray.INT_SIZE"/>
	<field name="ej.bon.ByteArray.LITTLE_ENDIAN"/>
	<field name="ej.bon.ByteArray.LONG_SIZE"/>
	<field name="ej.bon.ByteArray.SHORT_SIZE"/>
	<method name="ej.bon.ByteArray.ByteArray()void"/>
	<method name="ej.bon.ByteArray.clear(byte[],int,int)void"/>
	<method name="ej.bon.ByteArray.getPlatformEndianness()int"/>
	<method name="ej.bon.ByteArray.readChar(byte[],int)char"/>
	<method name="ej.bon.ByteArray.readChar(byte[],int,int)char"/>
	<method name="ej.bon.ByteArray.readInt(byte[],int)int"/>
	<method name="ej.bon.ByteArray.readInt(byte[],int,int)int"/>
	<method name="ej.bon.ByteArray.readLong(byte[],int)long"/>
	<method name="ej.bon.ByteArray.readLong(byte[],int,int)long"/>
	<method name="ej.bon.ByteArray.readShort(byte[],int)short"/>
	<method name="ej.bon.ByteArray.readShort(byte[],int,int)short"/>
	<method name="ej.bon.ByteArray.readUnsignedByte(byte[],int)int"/>
	<method name="ej.bon.ByteArray.set(byte[],byte,int,int)void"/>
	<method name="ej.bon.ByteArray.writeInt(byte[],int,int)void"/>
	<method name="ej.bon.ByteArray.writeInt(byte[],int,int,int)void"/>
	<method name="ej.bon.ByteArray.writeLong(byte[],int,long)void"/>
	<method name="ej.bon.ByteArray.writeLong(byte[],int,long,int)void"/>
	<method name="ej.bon.ByteArray.writeShort(byte[],int,int)void"/>
	<method name="ej.bon.ByteArray.writeShort(byte[],int,int,int)void"/>
	
	<type name="ej.bon.Constants"/>
	<method name="ej.bon.Constants.getBoolean(java.lang.String)boolean"/>
	<method name="ej.bon.Constants.getByte(java.lang.String)byte"/>
	<method name="ej.bon.Constants.getChar(java.lang.String)char"/>
	<method name="ej.bon.Constants.getClass(java.lang.String)java.lang.Class"/>
	<method name="ej.bon.Constants.getDouble(java.lang.String)double"/>
	<method name="ej.bon.Constants.getFloat(java.lang.String)float"/>
	<method name="ej.bon.Constants.getInt(java.lang.String)int"/>
	<method name="ej.bon.Constants.getLong(java.lang.String)long"/>
	<method name="ej.bon.Constants.getShort(java.lang.String)short"/>
	<method name="ej.bon.Constants.getString(java.lang.String)java.lang.String"/>

	<type name="ej.bon.EnqueuedWeakReference"/>
	<method name="ej.bon.EnqueuedWeakReference.EnqueuedWeakReference(java.lang.Object,ej.bon.ReferenceQueue)void"/>

	<type name="ej.bon.IllegalStateException"/>
	<method name="ej.bon.IllegalStateException.IllegalStateException()void"/>
	<method name="ej.bon.IllegalStateException.IllegalStateException(java.lang.String)void"/>

	<type name="ej.bon.Immutables"/>
	<method name="ej.bon.Immutables.Immutables()void"/>
	<method name="ej.bon.Immutables.allIDs()java.lang.String[]"/>
	<method name="ej.bon.Immutables.freeMemory()long"/>
	<method name="ej.bon.Immutables.get(java.lang.String)java.lang.Object"/>
	<method name="ej.bon.Immutables.isImmutable(java.lang.Object)boolean"/>
	<method name="ej.bon.Immutables.put(java.lang.String,java.lang.Object)void"/>
	<method name="ej.bon.Immutables.putAll(java.util.Hashtable)void"/>
	<method name="ej.bon.Immutables.totalMemory()long"/>

	<type name="ej.bon.ImmutablesError"/>
	<method name="ej.bon.ImmutablesError.ImmutablesError()void"/>
	<method name="ej.bon.ImmutablesError.ImmutablesError(java.lang.String)void"/>

	<type name="ej.bon.ReferenceQueue"/>
	<method name="ej.bon.ReferenceQueue.ReferenceQueue()void"/>
	<method name="ej.bon.ReferenceQueue.poll()ej.bon.EnqueuedWeakReference"/>
	<method name="ej.bon.ReferenceQueue.remove()ej.bon.EnqueuedWeakReference"/>

	<type name="ej.bon.ResourceArray"/>
	<method name="ej.bon.ResourceArray.elementAt(int)int"/>
	<method name="ej.bon.ResourceArray.elements()int[]"/>
	<method name="ej.bon.ResourceArray.getBuffer()ej.bon.ResourceBuffer"/>
	<method name="ej.bon.ResourceArray.length()int"/>
	<method name="ej.bon.ResourceArray.seekToElementPointer(int)ej.bon.ResourceBuffer"/>

	<type name="ej.bon.ResourceBuffer"/>
	<method name="ej.bon.ResourceBuffer.ResourceBuffer(java.lang.String)void"/>
	<method name="ej.bon.ResourceBuffer.align(int)void"/>
	<method name="ej.bon.ResourceBuffer.available()int"/>
	<method name="ej.bon.ResourceBuffer.close()void"/>
	<method name="ej.bon.ResourceBuffer.readArray()ej.bon.ResourceArray"/>
	<method name="ej.bon.ResourceBuffer.readBoolean()boolean"/>
	<method name="ej.bon.ResourceBuffer.readByte()byte"/>
	<method name="ej.bon.ResourceBuffer.readChar()char"/>
	<method name="ej.bon.ResourceBuffer.readInt()int"/>
	<method name="ej.bon.ResourceBuffer.readShort()short"/>
	<method name="ej.bon.ResourceBuffer.readString()java.lang.String"/>
	<method name="ej.bon.ResourceBuffer.readVarLong()long"/>
	<method name="ej.bon.ResourceBuffer.readVarSInt()int"/>
	<method name="ej.bon.ResourceBuffer.readVarUInt()int"/>
	<method name="ej.bon.ResourceBuffer.seek(long)void"/>

	<type name="ej.bon.Timer"/>
	<method name="ej.bon.Timer.Timer()void"/>
	<method name="ej.bon.Timer.Timer(boolean)void"/>
	<method name="ej.bon.Timer.cancel()void"/>
	<method name="ej.bon.Timer.dump(java.io.PrintStream)void"/>
	<method name="ej.bon.Timer.getDefaultUncaughtExceptionHandler()java.lang.Thread$UncaughtExceptionHandler"/>
	<method name="ej.bon.Timer.getUncaughtExceptionHandler()java.lang.Thread$UncaughtExceptionHandler"/>
	<method name="ej.bon.Timer.run()void"/>
	<method name="ej.bon.Timer.schedule(ej.bon.TimerTask,java.util.Date)void"/>
	<method name="ej.bon.Timer.schedule(ej.bon.TimerTask,java.util.Date,long)void"/>
	<method name="ej.bon.Timer.schedule(ej.bon.TimerTask,long)void"/>
	<method name="ej.bon.Timer.schedule(ej.bon.TimerTask,long,long)void"/>
	<method name="ej.bon.Timer.scheduleAtFixedRate(ej.bon.TimerTask,java.util.Date,long)void"/>
	<method name="ej.bon.Timer.scheduleAtFixedRate(ej.bon.TimerTask,long,long)void"/>
	<method name="ej.bon.Timer.setDefaultUncaughtExceptionHandler(java.lang.Thread$UncaughtExceptionHandler)void"/>
	<method name="ej.bon.Timer.setUncaughtExceptionHandler(java.lang.Thread$UncaughtExceptionHandler)void"/>

	<type name="ej.bon.TimerTask"/>
	<method name="ej.bon.TimerTask.TimerTask()void"/>
	<method name="ej.bon.TimerTask.cancel()boolean"/>
	<method name="ej.bon.TimerTask.run()void"/>
	<method name="ej.bon.TimerTask.scheduledExecutionTime()long"/>
	<method name="ej.bon.TimerTask.uncaughtException(ej.bon.Timer,java.lang.Throwable)void"/>

	<type name="ej.bon.Util"/>
	<method name="ej.bon.Util.Util()void"/>
	<method name="ej.bon.Util.currentTimeMillis()long"/>
	<method name="ej.bon.Util.newArray(java.lang.Class,int)java.lang.Object[]"/>
	<method name="ej.bon.Util.platformTimeMillis()long"/>
	<method name="ej.bon.Util.platformTimeNanos()long"/>
	<method name="ej.bon.Util.setCurrentTimeMillis(java.util.Date)void"/>
	<method name="ej.bon.Util.setCurrentTimeMillis(long)void"/>

	<type name="ej.bon.WeakHashtable"/>
	<method name="ej.bon.WeakHashtable.WeakHashtable()void"/>
	<method name="ej.bon.WeakHashtable.WeakHashtable(int)void"/>

	<type name="ej.bon.XMath"/>
	<method name="ej.bon.XMath.limit(double,double,double)double"/>
	<method name="ej.bon.XMath.limit(float,float,float)float"/>
	<method name="ej.bon.XMath.limit(int,int,int)int"/>
	<method name="ej.bon.XMath.limit(long,long,long)long"/>

</require>
