static IMethodInfo getMethodInfo( IType rootType, String funcName, IType[] params ) { ITypeInfo typeInfo = rootType.getTypeInfo(); if( typeInfo instanceof IRelativeTypeInfo ) { return ((IRelativeTypeInfo)typeInfo).getMethod( rootType, funcName, params ); } else { return typeInfo.getMethod( funcName, params ); } }
static IMethodInfo getMethodInfo( IType rootType, String funcName, IType[] params ) { ITypeInfo typeInfo = rootType.getTypeInfo(); if( typeInfo instanceof IRelativeTypeInfo ) { return ((IRelativeTypeInfo)typeInfo).getMethod( rootType, funcName, params ); } else { return typeInfo.getMethod( funcName, params ); } }
private IJavaClassMethod getJavaMethodFromProxy( IReducedDynamicFunctionSymbol dfs ) { IType proxyType = dfs.getGosuClass(); IJavaType javaType = (IJavaType)IGosuClass.ProxyUtil.getProxiedType( proxyType ); IType[] boundedDfsParams = new IType[dfs.getArgs().size()]; for( int i = 0; i < boundedDfsParams.length; i++ ) { IType param = dfs.getArgs().get(i).getType(); boundedDfsParams[i] = param; } String name = dfs.getDisplayName(); IJavaMethodInfo jmi = (IJavaMethodInfo)((IRelativeTypeInfo)javaType.getTypeInfo()).getMethod( javaType, name, boundedDfsParams ); if( jmi == null && name.startsWith( "@" ) && dfs.getArgs().size() == 1 ) { jmi = (IJavaMethodInfo)((IRelativeTypeInfo)javaType.getTypeInfo()).getMethod( javaType, "set" + name.substring( 1 ), boundedDfsParams ); } return jmi.getMethod(); }
static boolean isObjectMethod( IMethodInfo mi ) { IParameterInfo[] params = mi.getParameters(); IType[] paramTypes = new IType[params.length]; for( int i = 0; i < params.length; i++ ) { paramTypes[i] = params[i].getFeatureType(); } IRelativeTypeInfo ti = (IRelativeTypeInfo)JavaTypes.OBJECT().getTypeInfo(); String name = mi.getDisplayName(); name = name.equals( "@Class" ) ? "getClass" : name; IMethodInfo objMethod = ti.getMethod( JavaTypes.OBJECT(), name, paramTypes ); return objMethod != null; }
public static boolean isObjectMethod( IMethodInfo mi ) { IParameterInfo[] params = mi.getParameters(); IType[] paramTypes = new IType[params.length]; for( int i = 0; i < params.length; i++ ) { paramTypes[i] = params[i].getFeatureType(); } IRelativeTypeInfo ti = (IRelativeTypeInfo)JavaTypes.OBJECT().getTypeInfo(); IMethodInfo objMethod = ti.getMethod( JavaTypes.OBJECT(), mi.getDisplayName(), paramTypes ); return objMethod != null; }
public static boolean isObjectMethod( IMethodInfo mi ) { IParameterInfo[] params = mi.getParameters(); IType[] paramTypes = new IType[params.length]; for( int i = 0; i < params.length; i++ ) { paramTypes[i] = params[i].getFeatureType(); } IRelativeTypeInfo ti = (IRelativeTypeInfo)JavaTypes.OBJECT().getTypeInfo(); IMethodInfo objMethod = ti.getMethod( JavaTypes.OBJECT(), mi.getDisplayName(), paramTypes ); return objMethod != null; }
static boolean isObjectMethod( IMethodInfo mi ) { IParameterInfo[] params = mi.getParameters(); IType[] paramTypes = new IType[params.length]; for( int i = 0; i < params.length; i++ ) { paramTypes[i] = params[i].getFeatureType(); } IRelativeTypeInfo ti = (IRelativeTypeInfo)JavaTypes.OBJECT().getTypeInfo(); IMethodInfo objMethod = ti.getMethod( JavaTypes.OBJECT(), mi.getDisplayName(), paramTypes ); return objMethod != null; }
private static Object invokePropertyGetter( String dispatchName, Object root, IType type, String propertyName ) { ITypeInfo typeInfo = type.getTypeInfo(); IMethodInfo method; if( typeInfo instanceof IRelativeTypeInfo ) { method = ((IRelativeTypeInfo) typeInfo).getMethod( type, dispatchName, JavaTypes.STRING() ); } else { method = typeInfo.getMethod( dispatchName, JavaTypes.STRING() ); } return method == null ? IPlaceholder.UNHANDLED : method.getCallHandler().handleCall( root, propertyName ); }
private static Object invokePropertyGetter( String dispatchName, Object root, IType type, String propertyName ) { ITypeInfo typeInfo = type.getTypeInfo(); IMethodInfo method; if( typeInfo instanceof IRelativeTypeInfo ) { method = ((IRelativeTypeInfo) typeInfo).getMethod( type, dispatchName, JavaTypes.STRING() ); } else { method = typeInfo.getMethod( dispatchName, JavaTypes.STRING() ); } return method == null ? IPlaceholder.UNHANDLED : method.getCallHandler().handleCall( root, propertyName ); }
public static boolean isObjectMethod( IMethodInfo mi ) { IGosuClass gosuObjectType = GosuShop.getGosuClassFrom( JavaTypes.IGOSU_OBJECT() ); if( mi.getOwnersType() == gosuObjectType || mi.getDisplayName().equals( "@itype" ) ) { // A IGosuObject method return true; } IParameterInfo[] params = mi.getParameters(); IType[] paramTypes = new IType[params.length]; for( int i = 0; i < params.length; i++ ) { paramTypes[i] = params[i].getFeatureType(); } IRelativeTypeInfo ti = (IRelativeTypeInfo)JavaTypes.OBJECT().getTypeInfo(); IMethodInfo objMethod = ti.getMethod( JavaTypes.OBJECT(), mi.getDisplayName(), paramTypes ); return objMethod != null; }
public static boolean isObjectMethod( IMethodInfo mi ) { IGosuClass gosuObjectType = GosuShop.getGosuClassFrom( JavaTypes.IGOSU_OBJECT() ); if( mi.getOwnersType() == gosuObjectType || mi.getDisplayName().equals( "@itype" ) ) { // A IGosuObject method return true; } IParameterInfo[] params = mi.getParameters(); IType[] paramTypes = new IType[params.length]; for( int i = 0; i < params.length; i++ ) { paramTypes[i] = params[i].getFeatureType(); } IRelativeTypeInfo ti = (IRelativeTypeInfo)JavaTypes.OBJECT().getTypeInfo(); IMethodInfo objMethod = ti.getMethod( JavaTypes.OBJECT(), mi.getDisplayName(), paramTypes ); return objMethod != null; }
private IJavaClassMethod getJavaMethodFromProxy( IReducedDynamicFunctionSymbol dfs ) { IType proxyType = dfs.getGosuClass(); IJavaType javaType = (IJavaType)IGosuClass.ProxyUtil.getProxiedType( proxyType ); IType[] boundedDfsParams = new IType[dfs.getArgs().size()]; for( int i = 0; i < boundedDfsParams.length; i++ ) { IType param = dfs.getArgs().get(i).getType(); if( param instanceof ITypeVariableType && (param.getEnclosingType() instanceof IGosuClass || TypeLord.isRecursiveType( javaType )) ) { param = ((ITypeVariableType)param).getBoundingType(); } boundedDfsParams[i] = TypeLord.getPureGenericType( param ); } javaType = (IJavaType)TypeLord.getDefaultParameterizedType( javaType ); IJavaMethodInfo jmi = (IJavaMethodInfo)((IRelativeTypeInfo)javaType.getTypeInfo()).getMethod( javaType, dfs.getDisplayName(), boundedDfsParams ); return jmi.getMethod(); }
private static Object invokePropertySetter( String dispatchName, Object root, IType type, String propertyName, Object... args ) { ITypeInfo typeInfo = type.getTypeInfo(); IMethodInfo method; if( typeInfo instanceof IRelativeTypeInfo ) { method = ((IRelativeTypeInfo) typeInfo).getMethod( type, dispatchName, JavaTypes.STRING(), JavaTypes.OBJECT() ); } else { method = typeInfo.getMethod( dispatchName, JavaTypes.STRING(), JavaTypes.OBJECT() ); } return method == null ? IPlaceholder.UNHANDLED : method.getCallHandler().handleCall( root, propertyName, args ); }
private static Object invokePropertySetter( String dispatchName, Object root, IType type, String propertyName, Object... args ) { ITypeInfo typeInfo = type.getTypeInfo(); IMethodInfo method; if( typeInfo instanceof IRelativeTypeInfo ) { method = ((IRelativeTypeInfo) typeInfo).getMethod( type, dispatchName, JavaTypes.STRING(), JavaTypes.OBJECT() ); } else { method = typeInfo.getMethod( dispatchName, JavaTypes.STRING(), JavaTypes.OBJECT() ); } return method == null ? IPlaceholder.UNHANDLED : method.getCallHandler().handleCall( root, propertyName, args ); }
@Override public IMethodInfo getReadMethodInfo() { IJavaClassMethod method = getPropertyDescriptor().getReadMethod(); if( method != null ) { ITypeInfo ti = getOwnersType().getTypeInfo(); return ti instanceof IRelativeTypeInfo ? ((IRelativeTypeInfo)ti).getMethod( getOwnersType(), method.getName(), getTypesFromClasses( method.getParameterTypes() ) ) : ti.getMethod( method.getName(), getTypesFromClasses( method.getParameterTypes() ) ); } return null; }
private static Object invokeMethodInvoker( String dispatchName, Object root, IType type, String methodName, Object... args ) { ITypeInfo typeInfo = type.getTypeInfo(); IMethodInfo method; if( typeInfo instanceof IRelativeTypeInfo ) { method = ((IRelativeTypeInfo)typeInfo).getMethod( type, dispatchName, JavaTypes.STRING(), JavaTypes.OBJECT().getArrayType() ); } else { method = typeInfo.getMethod( dispatchName, JavaTypes.STRING(), JavaTypes.OBJECT().getArrayType() ); } return method == null ? IPlaceholder.UNHANDLED : method.getCallHandler().handleCall( root, methodName, args ); }
private static Object invokeMethodInvoker( String dispatchName, Object root, IType type, String methodName, Object... args ) { ITypeInfo typeInfo = type.getTypeInfo(); IMethodInfo method; if( typeInfo instanceof IRelativeTypeInfo ) { method = ((IRelativeTypeInfo)typeInfo).getMethod( type, dispatchName, JavaTypes.STRING(), JavaTypes.OBJECT().getArrayType() ); } else { method = typeInfo.getMethod( dispatchName, JavaTypes.STRING(), JavaTypes.OBJECT().getArrayType() ); } return method == null ? IPlaceholder.UNHANDLED : method.getCallHandler().handleCall( root, methodName, args ); }
@Override public IMethodInfo getWriteMethodInfo() { IJavaClassMethod method = getPropertyDescriptor().getWriteMethod(); if( method != null ) { ITypeInfo ti = getOwnersType().getTypeInfo(); return ti instanceof IRelativeTypeInfo ? ((IRelativeTypeInfo)ti).getMethod( getOwnersType(), method.getName(), getTypesFromClasses( method.getParameterTypes() ) ) : ti.getMethod( method.getName(), getTypesFromClasses( method.getParameterTypes() ) ); } return null; }
private Object getFromJavaType() { IJavaType javaType = _owner.getJavaType(); IRelativeTypeInfo typeInfo = (IRelativeTypeInfo)javaType.getTypeInfo(); if( _container instanceof IPropertyInfo ) { return typeInfo.getProperty( javaType, _container.getDisplayName() ).getAnnotation( getType() ).getInstance(); } return typeInfo.getMethod( javaType, _container.getDisplayName(), BaseFeatureInfo.getParamTypes( ((IMethodInfo)_container).getParameters() ) ).getAnnotation( getType() ).getInstance(); }
private Object getFromJavaType() { IJavaType javaType = _owner.getJavaType(); IRelativeTypeInfo typeInfo = (IRelativeTypeInfo)javaType.getTypeInfo(); if( _container instanceof IPropertyInfo ) { return typeInfo.getProperty( javaType, _container.getDisplayName() ).getAnnotation( getType() ).getInstance(); } return typeInfo.getMethod( javaType, _container.getDisplayName(), BaseFeatureInfo.getParamTypes( ((IMethodInfo)_container).getParameters() ) ).getAnnotation( getType() ).getInstance(); }