public void determineGetterSetterAndExtractedMethodStatus(RearrangerSettings settings) { LOG.debug("building method call & getter-setter graph for " + getName()); /** * check all rules to find first that this method matches. If that rule specifies that matching * methods are excluded from extracted method treatment, then skip this step. If this method is * a getter (according to that rule's definition) then determine its setter (according to that * rule's definition) at this point also. */ setNoExtractedMethods(false); /** * The following code determines whether the method is a getter/setter based on default * definition. This is necessary in case there are no rules, but "Keep Getters/Setters Together" * is set. If the method matches an individual rule with its own getter/setter definition, the * values of getter and setter will be changed to match that rule's definition. */ setGetter(MethodUtil.isGetter((PsiMethod) myEnd, settings.getDefaultGSDefinition())); setSetter(MethodUtil.isSetter((PsiMethod) myEnd, settings.getDefaultGSDefinition())); for (Rule rule : settings.getItemOrderAttributeList()) { if (rule instanceof IRestrictMethodExtraction) { if (rule.isMatch(this)) { if (((IRestrictMethodExtraction) rule).isNoExtractedMethods()) { LOG.debug("excluding " + myEnd.toString() + " from extracted method consideration"); setNoExtractedMethods(true); } setGetter(false); if (rule instanceof IHasGetterSetterDefinition) { if (MethodUtil.isGetter( (PsiMethod) getEnd(), ((IHasGetterSetterDefinition) rule).getGetterSetterDefinition())) { if (settings.isKeepGettersSettersTogether()) { setGetter(true); } } setSetter( MethodUtil.isSetter( (PsiMethod) getEnd(), ((IHasGetterSetterDefinition) rule).getGetterSetterDefinition())); } break; } } } }