package compiler;

import java.lang.reflect.*;
import java.util.*;

public class JParserUtil{
    public boolean isClassLoadAvail(String className){
            try{
                ClassLoader ccl = ClassLoader.getSystemClassLoader() ;
                Class classTest = ccl.loadClass(className);
                //System.out.println("class loaded");
                return true;
            }catch(ClassNotFoundException e){
                //System.out.println("\nClass not loaded");
                return false;
            }catch(Exception e){
                return false;
            }
        }

    public Class isMethodFound( String className, String methodName ){
            try {
                Class cls = Class.forName(className);
                Method methlist[] = cls.getDeclaredMethods();
                for (int i = 0; i < methlist.length;i++){
                    Method m = methlist[i];
                    //System.out.println("name = " + m.getName());
                    if (m.getName().equals(methodName)){
                        Class ftemp = m.getReturnType();
                        return ftemp;
                    }
        }
                return null;
            }catch (Throwable e){
                return null;
            }
    }
        
        public Object getParams( String className, String methodName ){
            try {
                Class cls = Class.forName(className);
                Method methlist[] = cls.getDeclaredMethods();
                for (int i = 0; i < methlist.length;i++){
                    Method m = methlist[i];
                    System.out.println("name = " + m.getName());
                    if (m.getName().equals(methodName)){
                        Class p[] = m.getParameterTypes();                        
                        LinkedList ret = new LinkedList();
                        for(int j=0;j<p.length;j++){
                            ret.addLast(p[j].toString());
                        }
                        return ret ;
                    }
        }
                return null;
            }catch (Throwable e){
                return null;
            }
    }

    public Class isFieldFound( String className, String fieldName ){
            try {
                Class cls = Class.forName(className);
                Field fieldList[] = cls.getDeclaredFields();
                for (int i = 0; i < fieldList.length;i++){
                    Field f = fieldList[i];
                    //System.out.println("name = " + f.getName());
                    if (f.getName().equals(fieldName)){
                        Class ftemp = f.getType();                        
                        return ftemp;
                    }
                }
                
                return null;
            }catch (Throwable e){
                return null;
            }
     }
        
        public boolean isPublicFinalField( String className, String fieldName ){
            try {
                Class cls = Class.forName(className);
                Field fieldList[] = cls.getDeclaredFields();
                for (int i = 0; i < fieldList.length;i++){
                    Field f = fieldList[i];
                    //System.out.println("name = " + f.getName());
                    if (f.getName().equals(fieldName)){
                        int mod = f.getModifiers();
                        if(java.lang.reflect.Modifier.isPublic(mod) == false || java.lang.reflect.Modifier.isFinal(mod) == true){
                            return false;
                        }
                        return true;
                    }
                }
                return false;
            }catch (Throwable e){
                return false;
            }
     }
        
        public boolean isPublicMethod( String className, String methodName ){
            try {
                Class cls = Class.forName(className);
                Method methlist[] = cls.getDeclaredMethods();
                for (int i = 0; i < methlist.length;i++){
                    Method m = methlist[i];
                    //System.out.println("name = " + m.getName());
                    if (m.getName().equals(methodName)){
                        int mod = m.getModifiers();
                        if(java.lang.reflect.Modifier.isPublic(mod) == false || java.lang.reflect.Modifier.isFinal(mod) == true){
                            return false;
                        }
                        return true;
                    }
        }
                return false;
            }catch (Throwable e){
                return false;
            }
    }
        
        public boolean getConstructorParams( String className, String methodName, LinkedList params ){
            try {
                Class cls = Class.forName(className);
                Constructor methlist[] = cls.getConstructors();
                for (int i = 0; i < methlist.length;i++){
                    Constructor m = methlist[i];
                    //System.out.println("name = " + m.getName());
                    if (m.getName().equals(className)){
                        Class p[] = m.getParameterTypes();                        
                        LinkedList ret = new LinkedList();
                        //System.out.println("Here: Type2: "+params+" Actuals: "+ret);
                        for(int j=0;j<p.length;j++){
                            ret.addLast(p[j].toString());
                        }
                        
                        if(ret.equals(params)){
                            return true;
                        }
                    }
        }
                return false ;
            }catch(Exception e){
                return false ;
            }
    }
}



Hosted by www.Geocities.ws

1