com.google.errorprone.bugpatterns.testdata.SizeGreaterThanOrEqualsZeroPositiveCases.java Source code

Java tutorial

Introduction

Here is the source code for com.google.errorprone.bugpatterns.testdata.SizeGreaterThanOrEqualsZeroPositiveCases.java

Source

/*
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.google.errorprone.bugpatterns.testdata;

import com.google.common.collect.Iterables;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author glorioso@google.com (Nick Glorioso)
 */
public class SizeGreaterThanOrEqualsZeroPositiveCases {
    private List<Integer> intList = new ArrayList<>();
    private Set<Integer> intSet = new HashSet<>();
    private Map<Integer, Integer> intMap = new HashMap<>();
    private Collection<Integer> intCollection = intList;

    public boolean collectionSize() {

        // BUG: Diagnostic contains: !intList.isEmpty()
        boolean foo = intList.size() >= 0;

        // BUG: Diagnostic contains: !intSet.isEmpty()
        foo = intSet.size() >= 0;

        // BUG: Diagnostic contains: !intSet.isEmpty()
        foo = 0 <= intSet.size();

        // BUG: Diagnostic contains: !intMap.isEmpty()
        foo = intMap.size() >= 0;

        // BUG: Diagnostic contains: !intCollection.isEmpty()
        foo = intCollection.size() >= 0;

        // Yes, that works as java code
        // BUG: Diagnostic contains: !new ArrayList<Integer>().isEmpty()
        if (new ArrayList<Integer>().size() >= 0) {
        }

        CollectionContainer baz = new CollectionContainer();

        // BUG: Diagnostic contains: !baz.intList.isEmpty()
        if (baz.intList.size() >= 0) {
        }

        // BUG: Diagnostic contains: !baz.getIntList().isEmpty()
        if (baz.getIntList().size() >= 0) {
        }

        // BUG: Diagnostic contains: !Iterables.isEmpty(baz.getIntList())
        foo = Iterables.size(baz.getIntList()) >= 0;

        return foo;
    }

    public void stringLength() {
        String myString = "foo";
        CharSequence charSequence = myString;
        StringBuffer stringBuffer = new StringBuffer(myString);
        StringBuilder stringBuilder = new StringBuilder(myString);
        boolean foo = false;

        // BUG: Diagnostic contains: !myString.isEmpty()
        foo = myString.length() >= 0;

        // BUG: Diagnostic contains: !"My String Literal".isEmpty()
        foo = "My String Literal".length() >= 0;

        // BUG: Diagnostic contains: !myString.trim().substring(0).isEmpty();
        foo = myString.trim().substring(0).length() >= 0;

        // BUG: Diagnostic contains: charSequence.length() > 0
        foo = charSequence.length() >= 0;

        // BUG: Diagnostic contains: stringBuffer.length() > 0
        foo = stringBuffer.length() >= 0;

        // BUG: Diagnostic contains: 0 < stringBuffer.length()
        foo = 0 <= stringBuffer.length();

        // BUG: Diagnostic contains: stringBuilder.length() > 0
        foo = stringBuilder.length() >= 0;
    }

    private static int[] staticIntArray;
    private int[] intArray;
    private boolean[][] twoDarray;

    public boolean arrayLength() {

        // BUG: Diagnostic contains: intArray.length > 0
        boolean foo = intArray.length >= 0;

        // BUG: Diagnostic contains: twoDarray.length > 0
        foo = twoDarray.length >= 0;

        // BUG: Diagnostic contains: staticIntArray.length > 0
        foo = staticIntArray.length >= 0;

        // BUG: Diagnostic contains: twoDarray[0].length > 0
        foo = twoDarray[0].length >= 0;

        // BUG: Diagnostic contains: 0 < twoDarray[0].length
        foo = 0 <= twoDarray[0].length;

        // BUG: Diagnostic contains: (((((twoDarray))))).length > 0
        foo = (((((twoDarray))))).length >= 0;

        return foo;
    }

    private static class CollectionContainer {
        List<Integer> intList;

        List<Integer> getIntList() {
            return intList;
        }
    }
}