[libinline-java-perl] 264/398: - PerlNatives stuff - Started refactoring using static methods and static HashMaps

Jonas Smedegaard dr at jones.dk
Thu Feb 26 11:43:12 UTC 2015


This is an automated email from the git hooks/post-receive script.

js pushed a commit to tag 0.55
in repository libinline-java-perl.

commit 1d114cc96bc409e27f6c09f56c17d0e110a291d6
Author: patrick_leb <>
Date:   Thu Jan 8 19:24:27 2004 +0000

    - PerlNatives stuff
    - Started refactoring using static methods and static HashMaps
---
 .../org/perl/inline/java/InlineJavaClass.java      | 61 +++++++++++++++++-----
 1 file changed, 49 insertions(+), 12 deletions(-)

diff --git a/Java/sources/org/perl/inline/java/InlineJavaClass.java b/Java/sources/org/perl/inline/java/InlineJavaClass.java
index 68d3812..929fc50 100644
--- a/Java/sources/org/perl/inline/java/InlineJavaClass.java
+++ b/Java/sources/org/perl/inline/java/InlineJavaClass.java
@@ -7,6 +7,20 @@ class InlineJavaClass {
 	private InlineJavaServer ijs ;
 	private InlineJavaProtocol ijp ;
 
+	static private HashMap class2jni_code = new HashMap() ;
+	static {
+		class2jni_code.put(byte.class, "B") ;
+		class2jni_code.put(short.class, "S") ;
+		class2jni_code.put(int.class, "I") ;
+		class2jni_code.put(long.class, "J") ;
+		class2jni_code.put(float.class, "F") ;
+		class2jni_code.put(double.class, "D") ;
+		class2jni_code.put(boolean.class, "Z") ;
+		class2jni_code.put(char.class, "C") ;
+		class2jni_code.put(void.class, "V") ;
+	} ;
+
+
 
 	InlineJavaClass(InlineJavaServer _ijs, InlineJavaProtocol _ijp){
 		ijs = _ijs ;
@@ -17,7 +31,7 @@ class InlineJavaClass {
 	/*
 		Makes sure a class exists
 	*/
-	Class ValidateClass(String name) throws InlineJavaException {
+	static Class ValidateClass(String name) throws InlineJavaException {
 		Class pc = FindType(name) ;
 		if (pc != null){
 			return pc ;
@@ -196,12 +210,12 @@ class InlineJavaClass {
 	/* 
 		Returns the number of levels that separate a from b
 	*/
-	int DoesExtend(Class a, Class b){
+	static int DoesExtend(Class a, Class b){
 		return DoesExtend(a, b, 0) ;
 	}
 
 
-	int DoesExtend(Class a, Class b, int level){
+	static int DoesExtend(Class a, Class b, int level){
 		InlineJavaUtils.debug(4, "checking if " + a.getName() + " extends " + b.getName()) ;
 
 		if (a == b){
@@ -234,7 +248,7 @@ class InlineJavaClass {
 	/*
 		Finds the wrapper class for the passed primitive type.
 	*/
-	Class FindWrapper (Class p){
+	static Class FindWrapper (Class p){
 		Class [] list = {
 			byte.class,
 			short.class,
@@ -269,7 +283,7 @@ class InlineJavaClass {
 	/*
 		Finds the primitive type class for the passed primitive type name.
 	*/
-	Class FindType (String name){
+	static Class FindType (String name){
 		String [] list = {
 			"byte",
 			"short",
@@ -317,7 +331,29 @@ class InlineJavaClass {
 	}
 
 
-	boolean ClassIsPrimitive (Class p){
+	static String FindJNICode(Class p){
+		// Strip all the ['s from in front of the class name into some var
+		char name[] = p.getName().toCharArray() ;
+		StringBuffer pref = new StringBuffer() ;
+		for (int i = 0 ; i < name.length ; i++){
+			if (name[i] == '['){
+				pref.append("[") ;
+			}
+			else if (name[i] == '.'){
+				name[i] = '/' ;
+			}
+		}
+
+		String code = (String)class2jni_code.get(p) ;
+		if (code == null){
+			code = "L"  + new String(name) + ";" ;
+		}
+		
+		return pref + code ;
+	}
+
+
+	static boolean ClassIsPrimitive(Class p){
 		String name = p.getName() ;
 
 		if ((ClassIsNumeric(p))||(ClassIsString(p))||(ClassIsChar(p))||(ClassIsBool(p))){
@@ -332,7 +368,7 @@ class InlineJavaClass {
 	/*
 		Determines if class is of numerical type.
 	*/
-	boolean ClassIsNumeric (Class p){
+	static boolean ClassIsNumeric (Class p){
 		String name = p.getName() ;
 
 		Class [] list = {
@@ -365,7 +401,7 @@ class InlineJavaClass {
 	/*
 		Class is String or StringBuffer
 	*/
-	boolean ClassIsString (Class p){
+	static boolean ClassIsString (Class p){
 		String name = p.getName() ;
 
 		Class [] list = {
@@ -387,7 +423,7 @@ class InlineJavaClass {
 	/*
 		Class is Char
 	*/
-	boolean ClassIsChar (Class p){
+	static boolean ClassIsChar (Class p){
 		String name = p.getName() ;
 
 		Class [] list = {
@@ -409,7 +445,7 @@ class InlineJavaClass {
 	/*
 		Class is Bool
 	*/
-	boolean ClassIsBool (Class p){
+	static boolean ClassIsBool (Class p){
 		String name = p.getName() ;
 
 		Class [] list = {
@@ -432,7 +468,7 @@ class InlineJavaClass {
 		Determines if a class is not of a primitive type or of a 
 		wrapper class.
 	*/
-	boolean ClassIsReference (Class p){
+	static boolean ClassIsReference (Class p){
 		String name = p.getName() ;
 
 		if (ClassIsPrimitive(p)){
@@ -444,7 +480,8 @@ class InlineJavaClass {
 		return true ;
 	}
 
-	boolean ClassIsArray (Class p){
+
+	static boolean ClassIsArray (Class p){
 		String name = p.getName() ;
 
 		if ((ClassIsReference(p))&&(name.startsWith("["))){

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libinline-java-perl.git



More information about the Pkg-perl-cvs-commits mailing list