/**
 * This file is part of Erjang - A JVM-based Erlang VM
 *
 * Copyright (c) 2009 by Trifork
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *  
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 **/


package erjang;

/**
 * 
 */
public abstract class ENative {
	protected abstract Class<?>[] getNativeClasses();
}

@@ -683,94 +683,712 @@
 %0A * 
-%0A */%0Apublic abstract class ENative %7B%0A%09protected abstract Class%3C?%3E%5B%5D getNativeClasses();
+Base class for native code.  %0A * %0A * To implement a native (BIF) for module named %3Ccode%3Efoo%3C/code%3E, create a subclass %0A * of this named %3Ccode%3Eerjang.m.foo.Native%3C/code%3E.  %0A * %0A * See %7B@link erjang.m.ets.Native%7D (the BIFs for %3Ccode%3Eets%3C/code%3E), which is %0A * the appointed %22good style to copy%22 for coding conventions.  %0A * %0A */%0Apublic abstract class ENative %7B%0A%09%09%0A%09/**%0A%09 * if you want to put the BIFs in multiple class files, you can tell which%0A%09 * class files here.  Normally that is not needed, but the module %3Ccode%3Eerlang%3C/code%3E%0A%09 * has so many BIFs that it is very inconvenient to have them in one large %0A%09 * file.%0A%09 */%0A%09%0A%09protected Class%3C?%3E%5B%5D getNativeClasses() %7B%0A%09%09return new Class%5B%5D %7B getClass() %7D;%0A%09%7D
 %0A%7D%0A

make ENative.getNativeClasses have a default implementation