All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.futureplatforms.kirin.KirinModule Maven / Gradle / Ivy

The newest version!
package com.futureplatforms.kirin;

import org.timepedia.exporter.client.Export;
import org.timepedia.exporter.client.Exportable;
import org.timepedia.exporter.client.NoExport;

import com.google.gwt.core.client.JavaScriptObject;

public abstract class KirinModule implements Exportable {

	protected T mNativeObject;
	
	private KirinModule() {}
	
	@NoExport
	public KirinModule(T nativeObject) {
		this();
		mNativeObject = nativeObject;
	}

	@Export
	public final void onLoad(JavaScriptObject moduleName) {
		if (mNativeObject instanceof IKirinProxied) {
			((IKirinProxied) mNativeObject).$setKirinNativeObject(moduleName);
		}
        _onLoad();
	}

    @NoExport
    public final void onPrototypeLoad(T nativeObject) {
        mNativeObject = nativeObject;
        _onLoad();
    }

    protected void _onLoad() {}

    @Export
	public void onUnload() {
		if (mNativeObject instanceof IKirinProxied) {
			((IKirinProxied) mNativeObject).$setKirinNativeObject(null);
		}
	}

    protected T getNativeObject() {
        return mNativeObject;
    }
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy