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 ;
}
}
}