public static IPropertyInfo getProperty( ITypeInfo beanInfo, IType classBean, String strMember ) { IPropertyInfo property; if( beanInfo instanceof IRelativeTypeInfo) { property = ((IRelativeTypeInfo)beanInfo).getProperty( classBean, strMember ); } else { property = beanInfo.getProperty( strMember ); } return property; } }
public static IPropertyInfo getProperty( ITypeInfo beanInfo, IType classBean, String strMember ) { IPropertyInfo property; if( beanInfo instanceof IRelativeTypeInfo) { property = ((IRelativeTypeInfo)beanInfo).getProperty( classBean, strMember ); } else { property = beanInfo.getProperty( strMember ); } return property; } }
public static IPropertyInfo getProperty( ITypeInfo beanInfo, IType classBean, String strMember ) { IPropertyInfo property; if( beanInfo instanceof IRelativeTypeInfo) { property = ((IRelativeTypeInfo)beanInfo).getProperty( classBean, strMember ); } else { property = beanInfo.getProperty( strMember ); } return property; } }
public static IPropertyInfo findProperty( IType type, String propertyName ) { ITypeInfo typeInfo = type.getTypeInfo(); return typeInfo instanceof IRelativeTypeInfo ? ((IRelativeTypeInfo)typeInfo).getProperty( type, propertyName ) : typeInfo.getProperty( propertyName ); }
static IPropertyInfo getPropertyInfo( IType rootType, String propName ) { ITypeInfo typeInfo = rootType.getTypeInfo(); if( typeInfo instanceof IRelativeTypeInfo ) { return ((IRelativeTypeInfo)typeInfo).getProperty( rootType, propName ); } else { return typeInfo.getProperty( propName ); } }
static IPropertyInfo getPropertyInfo( IType rootType, String propName ) { ITypeInfo typeInfo = rootType.getTypeInfo(); if( typeInfo instanceof IRelativeTypeInfo ) { return ((IRelativeTypeInfo)typeInfo).getProperty( rootType, propName ); } else { return typeInfo.getProperty( propName ); } }
public static IPropertyInfo findProperty( IType type, String propertyName ) { ITypeInfo typeInfo = type.getTypeInfo(); return typeInfo instanceof IRelativeTypeInfo ? ((IRelativeTypeInfo)typeInfo).getProperty( type, propertyName ) : typeInfo.getProperty( propertyName ); }
public IPropertyInfo get() { if( _type == null ) { return null; } ITypeInfo typeInfo = _type.getTypeInfo(); if( typeInfo instanceof IRelativeTypeInfo ) { return ((IRelativeTypeInfo)typeInfo).getProperty( _whosaskin, _name ); } else { return _owner.getProperty( _name ); } } }
public IPropertyInfo get() { if( _type == null ) { return null; } ITypeInfo typeInfo = _type.getTypeInfo(); if( typeInfo instanceof IRelativeTypeInfo ) { return ((IRelativeTypeInfo)typeInfo).getProperty( _whosaskin, _name ); } else { return _owner.getProperty( _name ); } } }
public static boolean isObjectProperty( IPropertyInfo pi ) { IRelativeTypeInfo ti = (IRelativeTypeInfo)JavaTypes.OBJECT().getTypeInfo(); IPropertyInfo objProp = ti.getProperty( JavaTypes.OBJECT(), pi.getDisplayName() ); return objProp != null; }
private IJavaPropertyDescriptor getJavaPropertyFromProxy( IReducedDynamicPropertySymbol dps ) { IType proxyType = dps.getGosuClass(); IJavaType javaType = (IJavaType) IGosuClass.ProxyUtil.getProxiedType( proxyType ); javaType = (IJavaType)TypeLord.getDefaultParameterizedType( javaType ); IJavaPropertyInfo jpi = (IJavaPropertyInfo)((IRelativeTypeInfo)javaType.getTypeInfo()).getProperty( javaType, dps.getName() ); return jpi.getPropertyDescriptor(); } }
private IJavaPropertyDescriptor getJavaPropertyFromProxy( IDynamicPropertySymbol dps ) { IType proxyType = dps.getGosuClass(); IJavaType javaType = (IJavaType) IGosuClass.ProxyUtil.getProxiedType( proxyType ); javaType = (IJavaType)TypeLord.getDefaultParameterizedType( javaType ); IJavaPropertyInfo jpi = (IJavaPropertyInfo)((IRelativeTypeInfo)javaType.getTypeInfo()).getProperty( javaType, dps.getName() ); return jpi.getPropertyDescriptor(); } }
private IJavaPropertyDescriptor getJavaPropertyFromProxy( IReducedDynamicPropertySymbol dps ) { IType proxyType = dps.getGosuClass(); IJavaType javaType = (IJavaType) IGosuClass.ProxyUtil.getProxiedType( proxyType ); javaType = (IJavaType)TypeLord.getDefaultParameterizedType( javaType ); IJavaPropertyInfo jpi = (IJavaPropertyInfo)((IRelativeTypeInfo)javaType.getTypeInfo()).getProperty( javaType, dps.getName() ); return jpi.getPropertyDescriptor(); } }
private IRType getFieldType( String name, IJavaType javaType ) { javaType = (IJavaType)TypeLord.getDefaultParameterizedType( javaType ); JavaFieldPropertyInfo jpi = (JavaFieldPropertyInfo)((IRelativeTypeInfo)javaType.getTypeInfo()).getProperty( javaType, name ); if( javaType != jpi.getOwnersType() ) { return getFieldType( name, (IJavaType)jpi.getOwnersType() ); } return IRTypeResolver.getDescriptor( jpi.getFeatureType() ); }
private IPropertyInfo maybeGetProxiedPropertyInfo( String propName, IPropertyInfo pi ) { if( GosuClass.ProxyUtil.isProxy( pi.getOwnersType() ) ) { ITypeInfo ti = GosuClass.ProxyUtil.getProxiedType( pi.getOwnersType() ).getTypeInfo(); pi = ti instanceof IRelativeTypeInfo ? ((IRelativeTypeInfo)ti).getProperty( getGosuClass(), propName ) : ti.getProperty( propName ); } else if( pi instanceof IPropertyInfoDelegate ) { pi = maybeGetProxiedPropertyInfo( propName, ((IPropertyInfoDelegate)pi).getSource() ); } return pi; }
private String getReflectiveName( IAttributedFeatureInfo pi, IType rootType, ITypeInfo rootTypeInfo ) { if( rootType.isDynamic() || isExpando( rootType ) ) { IAnnotationInfo actualNameAnno = pi.getAnnotation( JavaTypes.ACTUAL_NAME() ); if( actualNameAnno != null ) { // Must use actual name reflectively in case name is not a legal identifier return (String)actualNameAnno.getFieldValue( "value" ); } } else if( rootTypeInfo instanceof IRelativeTypeInfo && ((IRelativeTypeInfo)rootTypeInfo).getProperty( rootType, pi.getName() ).isPrivate() ) { // Private members must be accessed reflectively return pi.getName(); } return null; }
public boolean resolveProperty( String propName ) { IType typeToResolveAgainst = getRootTypeToResolveFeaturesAgainst(); IPropertyInfo property; if( typeToResolveAgainst.getTypeInfo() instanceof IRelativeTypeInfo ) { property = ((IRelativeTypeInfo)typeToResolveAgainst.getTypeInfo()).getProperty( typeToResolveAgainst, propName ); } else { property = typeToResolveAgainst.getTypeInfo().getProperty( propName ); } boolean foundProp = property != null; _feature = foundProp ? property : ErrorType.getInstance().getTypeInfo().getProperty( propName ); resolveExpressionType(); return foundProp; }
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(); }
private boolean areSymbolsFromSameDeclaration(IVarStatement varStmt, ISymbol existingSymbol) { boolean sameDeclaringType = GosuObjectUtil.equals(existingSymbol.getScriptPart(), varStmt.getSymbol().getScriptPart()); if( sameDeclaringType ) { return true; } if( existingSymbol.getScriptPart() != null ) { IGosuClassInternal existingDeclaringType = (IGosuClassInternal)existingSymbol.getScriptPart().getContainingType(); if( isProxy() && existingDeclaringType.isProxy() ) { // This class is a Java proxy and so is the declaring class of the existing symbol. In this case we need to get // the JavaType corresponding with this class' proxy and find where the existing symbol comes from within the Java // hierarchy. IPropertyInfo pi = ((IRelativeTypeInfo)getJavaType().getTypeInfo()).getProperty( getTheRef(), existingSymbol.getName() ); return pi != null && pi.getOwnersType() == existingDeclaringType.getJavaType(); } } return false; }