private boolean isPropertyGetter(IMethodInfo mi, String strPrefix) { String strMethod = mi.getDisplayName(); if (strMethod.startsWith(strPrefix) && mi.getParameters().length == 0) { String strProp = strMethod.substring(strPrefix.length()); if (strProp.length() > 0 && Character.isUpperCase(strProp.charAt(0))) { ITypeInfo ti = (ITypeInfo) mi.getContainer(); IPropertyInfo pi = ti instanceof IRelativeTypeInfo ? ((IRelativeTypeInfo) ti).getProperty(mi.getOwnersType(), strProp) : ti.getProperty(strProp); if (pi != null && getGenericType(pi).getName().equals(getGenericReturnType(mi).getName())) { return !Keyword.isReserved(pi.getName()) || Keyword.isReservedValue(pi.getName()); } } } return false; }
private boolean isPropertySetter(IMethodInfo mi) { String strMethod = mi.getDisplayName(); if (strMethod.startsWith("set") && strMethod.length() > 3 && mi.getParameters().length == 1 && mi.getReturnType() == JavaTypes.pVOID()) { String strProp = strMethod.substring("set".length()); if (Character.isUpperCase(strProp.charAt(0))) { ITypeInfo ti = (ITypeInfo) mi.getContainer(); IPropertyInfo pi = ti instanceof IRelativeTypeInfo ? ((IRelativeTypeInfo) ti).getProperty(mi.getOwnersType(), strProp) : ti.getProperty(strProp); if (pi != null && pi.isReadable() && getGenericType(pi) .getName() .equals(getGenericParameters(mi)[0].getFeatureType().getName())) { return !Keyword.isReserved(pi.getName()) || Keyword.isReservedValue(pi.getName()); } } } return false; }
private IParameterInfo[] getGenericParameters(IMethodInfo mi) { return (mi instanceof JavaMethodInfo) ? ((JavaMethodInfo) mi).getGenericParameters() : mi.getParameters(); }