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;
       }
     }
   }
 }