private boolean initializedInConstructor(List<NameOccurrence> usages) {
    boolean initInConstructor = false;

    for (NameOccurrence occ : usages) {
      // specifically omitting prefix and postfix operators as there are
      // legitimate usages of these with static fields, e.g. typesafe enum pattern.
      if (((JavaNameOccurrence) occ).isOnLeftHandSide()) {
        Node node = occ.getLocation();
        Node constructor = node.getFirstParentOfType(ASTConstructorDeclaration.class);
        if (constructor != null) {
          initInConstructor = true;
        }
      }
    }

    return initInConstructor;
  }
 private boolean isInitCauseCalled(String target, List<NameOccurrence> occurrences) {
   boolean initCauseCalled = false;
   for (NameOccurrence occurrence : occurrences) {
     String image = null;
     if (occurrence.getLocation() != null) {
       image = occurrence.getLocation().getImage();
     }
     if (image != null && image.endsWith("initCause")) {
       ASTPrimaryExpression primaryExpression =
           occurrence.getLocation().getFirstParentOfType(ASTPrimaryExpression.class);
       if (primaryExpression != null) {
         ASTArgumentList args2 = primaryExpression.getFirstDescendantOfType(ASTArgumentList.class);
         if (checkForTargetUsage(target, args2)) {
           initCauseCalled = true;
           break;
         }
       }
     }
   }
   return initCauseCalled;
 }