private boolean isQualifiedExcludedType(Tree tree) {
   if (!tree.is(Kind.MEMBER_SELECT)) {
     return false;
   }
   return Iterables.contains(
       exceptions, ExpressionsHelper.concatenate((MemberSelectExpressionTree) tree));
 }
 private void addAssignment(ExpressionTree tree) {
   ExpressionTree variable = ExpressionsHelper.skipParentheses(tree);
   if (variable.is(Tree.Kind.IDENTIFIER)) {
     addAssignment((IdentifierTree) variable);
   } else if (variable.is(Tree.Kind.MEMBER_SELECT)) {
     addAssignment(((MemberSelectExpressionTree) variable).identifier());
   }
 }
 @Override
 public void visitMemberSelectExpression(MemberSelectExpressionTree tree) {
   String reference = ExpressionsHelper.concatenate(tree);
   if (!isExcluded(reference)) {
     int line = FirstSyntaxTokenFinder.firstSyntaxToken(tree).line();
     if (!reportedLines.contains(line) && isSunClass(reference)) {
       context.addIssue(
           line, this, "Replace this usage of Sun classes by ones from the Java API.");
       reportedLines.add(line);
     }
     super.visitMemberSelectExpression(tree);
   }
 }