/*
* Copyright 2005-2010 Ignis Software Tools Ltd. All rights reserved.
*/
package jsystem.framework.system;
import java.lang.reflect.Method;
import java.util.Properties;
import jsystem.framework.analyzer.AnalyzerImpl;
import jsystem.utils.beans.BeanUtils;
public class DefaultSystemObjectAdaptor implements SystemObjectAdaptor {
@Override
public boolean isMethodSupported(Method method) {
if(method.getName().toLowerCase().startsWith("set") || method.getName().toLowerCase().startsWith("get") ||
method.getName().equals("close") || method.getName().equals("init") || method.getName().equals("check")){
return false;
}
if(method.getDeclaringClass().equals(SystemObjectImpl.class) || method.getDeclaringClass().equals(Object.class) ||
method.getDeclaringClass().equals(AnalyzerImpl.class)){
return false;
}
Class<?>[] classes = method.getParameterTypes();
for(Class<?> clazz: classes){
if(!BeanUtils.isClassOfTypes(clazz, BeanUtils.getBasicTypes())){
return false;
}
}
return true;
}
@Override
public Object[] getMethodValues(Method m, Properties properties, String[] paramNames) {
Class<?>[] clazzes = m.getParameterTypes();
Object[] values = new Object[clazzes.length];
for(int i = 0; i < values.length; i++){
values[i] = BeanUtils.getObjects(clazzes[i], properties.getProperty(paramNames[i]));
}
return values;
}
}