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

com.intrigus.cocoja.ObjcClass Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 * Copyright 2016 See AUTHORS file.
 * 
 * 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 com.intrigus.cocoja;

public class ObjcClass extends Pointer {

	// @off
	/*JNI
	#import 
	#import 
	#import 	
	*/
	// @on

	public ObjcClass (long address) {
		super(address);
		// TODO Auto-generated constructor stub
	}

	public Pointer getClassMethod (ObjcClass cls, Pointer aSelector) {
		return new Pointer(address);
	}

	public Pointer getInstanceMethod (ObjcClass cls, Pointer aSelector) {
		return new Pointer(address);
	}

	public int getInstanceSize (ObjcClass cls) {
		return 0;
	}

	public Pointer getInstanceVariable (ObjcClass cls, String name) {
		return new Pointer(address);
	}

	public String getIvarLayout () {
		return _getIvarLayout(address);
	}

	//@off
	private static native String _getIvarLayout (long address);/*	
	void * class = jlong_to_ptr(address);
	const char * className = class_getIvarLayout(class);
	return (*env)->NewStringUTF(env, className);
	*/
	//@on

	public Pointer getMethodImplementation (ObjcClass cls, Pointer name) {
		return new Pointer(address);
	}

	public Pointer getMethodImplementation_stret (ObjcClass cls, Pointer name) {
		return new Pointer(address);
	}

	public String getName () {
		return _getName(address);
	}

	//@off
	private static native String _getName (long address);/*	
	void * class = jlong_to_ptr(address);
	const char * className = class_getName(class);
	return (*env)->NewStringUTF(env, className);
	*/
   //@on

	public Pointer getProperty (ObjcClass cls, String name) {
		return new Pointer(address);
	}

	public ObjcClass getSuperclass () {
		return new ObjcClass(_getSuperclass(address));
	}

	//@off
	private static native long _getSuperclass (long address);/*	
	void * class = jlong_to_ptr(address);
	return ptr_to_jlong(class_getSuperclass(class));
	*/
	//@on

	public int getVersion (ObjcClass cls) {
		return 0;
	}

	public String getWeakIvarLayout () {
		return _getWeakIvarLayout(address);
	}

	//@off
	private static native String _getWeakIvarLayout (long address);/*	
	void * class = jlong_to_ptr(address);
	const char * className = class_getWeakIvarLayout(class);
	return (*env)->NewStringUTF(env, className);
	*/
	//@on

	public boolean isMetaClass () {
		return _isMetaClass(address);
	}

	//@off
	private static native boolean _isMetaClass (long address);/*	
	void * class = jlong_to_ptr(address);
	return class_isMetaClass(class);
	*/
	//@on

	public Pointer replaceMethod (ObjcClass cls, Pointer name, Pointer imp, String types) {
		return new Pointer(address);
	}

	public Pointer respondsToSelector (ObjcClass cls, Pointer sel) {
		return new Pointer(address);
	}

	public void setIvarLayout (ObjcClass cls, String layout) {
		return;
	}

	public Pointer setSuperclass (ObjcClass cls, Pointer newSuper) {
		return new Pointer(address);
	}

	public void setVersion (Pointer theClass, int version) {
		// return;
	}

	public void setWeakIvarLayout (String layout) {
		_setWeakIvarLayout(address, layout);
	}

	//@off
	private static native void _setWeakIvarLayout (long address, String layout);/*	
	void * class = jlong_to_ptr(address);
	class_setWeakIvarLayout(class, layout);
	*/
	//@on
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy