Adds a system annotation if the given value is non-null
179613
public SystemInputDefBuilder hasIf( String name, Object value)
    {
    return
      value != null
      ? has( name, value)
      : this;
    }
845267
public static Long checkNull(Long value, Long elseValue) {
        return isNull(value) ? elseValue : value;
    }
459515
public static void addDefaultNullnessAnnotations(INullnessAnnotationDatabase database) {
        if (AnnotationDatabase.IGNORE_BUILTIN_ANNOTATIONS) {
            return;
        }

        boolean missingClassWarningsSuppressed = AnalysisContext.currentAnalysisContext().setMissingClassWarningsSuppressed(true);

        database.addDefaultAnnotation(AnnotationDatabase.Target.METHOD, Values.DOTTED_JAVA_LANG_STRING, NullnessAnnotation.NONNULL);
        database.addFieldAnnotation("java.lang.System", "out", "Ljava/io/PrintStream;", true, NullnessAnnotation.NONNULL);
        database.addFieldAnnotation("java.lang.System", "err", "Ljava/io/PrintStream;", true, NullnessAnnotation.NONNULL);
        database.addFieldAnnotation("java.lang.System", "in", "Ljava/io/InputStream;", true, NullnessAnnotation.NONNULL);

        database.addFieldAnnotation("java.math.BigInteger", "ZERO", "Ljava/math/BigInteger;", true, NullnessAnnotation.NONNULL);
        database.addFieldAnnotation("java.math.BigInteger", "ONE", "Ljava/math/BigInteger;", true, NullnessAnnotation.NONNULL);
        database.addFieldAnnotation("java.math.BigInteger", "TEN", "Ljava/math/BigInteger;", true, NullnessAnnotation.NONNULL);

        database.addMethodAnnotation("java.nio.file.Files", "probeContentType", "(Ljava/nio/file/Path;)Ljava/lang/String;", true,
                NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodAnnotation("java.nio.file.Path", "getRoot", "()Ljava/nio/file/Path;", false,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodAnnotation("java.nio.file.Path", "getFileName", "()Ljava/nio/file/Path;", false,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodAnnotation("java.nio.file.Path", "getParent", "()Ljava/nio/file/Path;", false,
                NullnessAnnotation.CHECK_FOR_NULL);


        database.addMethodAnnotation(Values.DOTTED_JAVA_IO_FILE, "list", "()[Ljava/lang/String;", false,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodAnnotation(Values.DOTTED_JAVA_IO_FILE, "list", "(Ljava/io/FilenameFilter;)[Ljava/lang/String;", false,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodAnnotation(Values.DOTTED_JAVA_IO_FILE, "listFiles", "()[Ljava/io/File;", false,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodAnnotation(Values.DOTTED_JAVA_IO_FILE, "listFiles", "(Ljava/io/FilenameFilter;)[Ljava/io/File;", false,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodAnnotation(Values.DOTTED_JAVA_IO_FILE, "listFiles", "(Ljava/io/FileFilter;)[Ljava/io/File;", false,
                NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodAnnotation("java.lang.ref.ReferenceQueue", "poll", "()Ljava/lang/ref/Reference;", false,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodAnnotation("java.lang.ref.Reference", "get", "()Ljava/lang/Object;", false,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodAnnotation("java.lang.Class", "newInstance", "()Ljava/lang/Object;", false, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("java.lang.Class", "forName", "(Ljava/lang/String;)Ljava/lang/Class;", true,
                NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("java.lang.reflect.Method", "getParameterTypes", "()[Ljava/lang/Class;", false,
                NullnessAnnotation.NONNULL);
        database.addMethodAnnotation(Values.DOTTED_JAVA_LANG_OBJECT, "clone", "()Ljava/lang/Object;", false, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation(Values.DOTTED_JAVA_LANG_OBJECT, "toString", "()Ljava/lang/String;", false, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation(Values.DOTTED_JAVA_LANG_OBJECT, "getClass", "()Ljava/lang/Class;", false, NullnessAnnotation.NONNULL);

        database.addMethodParameterAnnotation(Values.DOTTED_JAVA_LANG_OBJECT, "equals", "(Ljava/lang/Object;)Z", false, 0,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.Arrays", "asList", "([Ljava/lang/Object;)Ljava/util/List;", true, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation(Values.DOTTED_JAVA_LANG_INTEGER, "<init>", "(Ljava/lang/String;)V", false, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation(Values.DOTTED_JAVA_LANG_INTEGER, "parseInt", "(Ljava/lang/String;I)I", true, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation(Values.DOTTED_JAVA_LANG_INTEGER, "parseInt", "(Ljava/lang/String;)I", true, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("java.nio.channels.SocketChannel", "open", "()Ljava/nio/channels/SocketChannel;", true,
                NullnessAnnotation.NONNULL);

        database.addMethodAnnotation("java.sql.Statement", "executeQuery", "(Ljava/lang/String;)Ljava/sql/ResultSet;", false,
                NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("java.sql.PreparedStatement", "executeQuery", "()Ljava/sql/ResultSet;", false,
                NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("java.sql.Connection", "prepareStatement",
                "(Ljava/lang/String;)Ljava/sql/PreparedStatement;", false, NullnessAnnotation.NONNULL);
        database.addDefaultAnnotation(AnnotationDatabase.Target.METHOD, "java.sql.DatabaseMetaData", NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("java.sql.DatabaseMetaData", "getConnection", "()Ljava/sql/Connection;", false,
                NullnessAnnotation.NULLABLE);
        database.addMethodAnnotation("java.sql.DatabaseMetaData", "getAttributes",
                "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;", false,
                NullnessAnnotation.NULLABLE);
        database.addMethodAnnotation("java.sql.DatabaseMetaData", "getColumns",
                "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;", false,
                NullnessAnnotation.NULLABLE);
        database.addMethodAnnotation("java.sql.DatabaseMetaData", "getSuperTables",
                "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;", false,
                NullnessAnnotation.NULLABLE);
        database.addMethodAnnotation("java.sql.DatabaseMetaData", "getSuperTypes",
                "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;", false,
                NullnessAnnotation.NULLABLE);
        database.addMethodAnnotation("java.sql.DatabaseMetaData", "getTimeDateFunctions", "()Ljava/lang/String;", false,
                NullnessAnnotation.NULLABLE);
        database.addMethodAnnotation("java.sql.DatabaseMetaData", "getTypeInfo", "()Ljava/sql/ResultSet;", false,
                NullnessAnnotation.NULLABLE);
        database.addMethodAnnotation("java.sql.DatabaseMetaData", "getURL", "()Ljava/lang/String;", false,
                NullnessAnnotation.NULLABLE);

        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.package-info",
                NullnessAnnotation.NONNULL);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.CopyOnWriteArrayList",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.CopyOnWriteArraySet",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.ConcurrentLinkedQueue$Node",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.Exchanger",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.FutureTask",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.LinkedBlockingQueue$Node",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER,
                "java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask", NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.SynchronousQueue$WaitQueue",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.SynchronousQueue$Node",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.ThreadPoolExecutor$Worker",
                NullnessAnnotation.UNKNOWN_NULLNESS);

        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.AbstractExecutorService",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER,
                "java.util.concurrent.ConcurrentSkipListMap$ConcurrentSkipListSubMap", NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER,
                "java.util.concurrent.ConcurrentSkipListMap$HeadIndex", NullnessAnnotation.UNKNOWN_NULLNESS);

        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.ConcurrentSkipListMap$Index",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.ConcurrentSkipListMap$Node",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.ConcurrentSkipListMap$SubMap",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER,
                "java.util.concurrent.ConcurrentSkipListSet$ConcurrentSkipListSubSet", NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.LinkedBlockingDeque$Node",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.SynchronousQueue$TransferQueue",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER,
                "java.util.concurrent.SynchronousQueue$TransferQueue$QNode", NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.SynchronousQueue$TransferStack",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.SynchronousQueue$Transferer",
                NullnessAnnotation.UNKNOWN_NULLNESS);
        database.addMethodParameterAnnotation("java.util.concurrent.ConcurrentMap", "containsKey", "(Ljava/lang/Object;)Z",
                false, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ConcurrentMap", "containsValue", "(Ljava/lang/Object;)Z",
                false, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ConcurrentMap", "get",
                "(Ljava/lang/Object;)Ljava/lang/Object;", false, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ConcurrentMap", "remove",
                "(Ljava/lang/Object;)Ljava/lang/Object;", false, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ConcurrentMap", "put",
                "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", false, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ConcurrentMap", "put",
                "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", false, 1, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ConcurrentHashMap", "remove",
                "(Ljava/lang/Object;Ljava/lang/Object;)Z", false, 1, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ConcurrentHashMap", "setEntryAt",
                "([Ljava/util/concurrent/ConcurrentHashMap$HashEntry;ILjava/util/concurrent/ConcurrentHashMap$HashEntry;)V", false, 1, NullnessAnnotation.NULLABLE);
        database.addMethodParameterAnnotation("java.util.concurrent.ForkJoinPool", "<init>",
                "(ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;Z)V", false, 1, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ForkJoinPool", "<init>",
                "(ILjava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;Ljava/lang/Thread$UncaughtExceptionHandler;Z)V", false, 2, NullnessAnnotation.NULLABLE);
        database.addMethodParameterAnnotation("java.util.concurrent.PriorityBlockingQueue", "<init>",
                "(ILjava/util/Comparator;)V", false, 1, NullnessAnnotation.NULLABLE);

        database.addDefaultAnnotation(AnnotationDatabase.Target.PARAMETER, "java.util.concurrent.ConcurrentLinkedDeque$Node",
                NullnessAnnotation.UNKNOWN_NULLNESS);

        database.addMethodParameterAnnotation("java.util.concurrent.ConcurrentMap", "remove",
                "(Ljava/lang/Object;Ljava/lang/Object;)Z", false, 1, NullnessAnnotation.NULLABLE);

        database.addMethodParameterAnnotation("java.util.concurrent.FutureTask", "<init>",
                "(Ljava/lang/Runnable;Ljava/lang/Object;)V", false, 1, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.Executors", "callable",
                "(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Callable;", true, 1,
                NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodParameterAnnotation("java.util.concurrent.ThreadPoolExecutor", "addWorker", "(Ljava/lang/Runnable;Z)Z",
                false, 0, NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodParameterAnnotation("java.util.concurrent.ConcurrentHashMap$Segment", "remove",
                "(Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;", false, 2, NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodParameterAnnotation("java.util.concurrent.CyclicBarrier", "<init>", "(ILjava/lang/Runnable;)V", false,
                1, NullnessAnnotation.CHECK_FOR_NULL);



        database.addMethodParameterAnnotation("java.util.concurrent.BrokenBarrierException", "<init>",
                "(Ljava/lang/String;)V", false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.CancellationException", "<init>",
                "(Ljava/lang/String;)V", false, 0, NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodParameterAnnotation("java.util.concurrent.CompletableFuture", "complete",
                "(Ljava/lang/Object;)Z", false, 0, NullnessAnnotation.NULLABLE);
        database.addMethodParameterAnnotation("java.util.concurrent.CompletableFuture", "completedFuture",
                "(Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture;", true, 0, NullnessAnnotation.NULLABLE);

        database.addMethodParameterAnnotation("java.util.concurrent.ExecutionException", "<init>", "(Ljava/lang/String;)V",
                false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ExecutionException", "<init>",
                "(Ljava/lang/String;Ljava/lang/Throwable;)V", false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ExecutionException", "<init>",
                "(Ljava/lang/String;Ljava/lang/Throwable;)V", false, 1, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ExecutionException", "<init>",
                "(Ljava/lang/Throwable;)V", false, 0, NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodParameterAnnotation("java.util.concurrent.RejectedExecutionException", "<init>",
                "(Ljava/lang/String;)V", false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.RejectedExecutionException", "<init>",
                "(Ljava/lang/String;Ljava/lang/Throwable;)V", false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.RejectedExecutionException", "<init>",
                "(Ljava/lang/String;Ljava/lang/Throwable;)V", false, 1, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.RejectedExecutionException", "<init>",
                "(Ljava/lang/Throwable;)V", false, 0, NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodParameterAnnotation("java.util.concurrent.TimeoutException", "<init>", "(Ljava/lang/String;)V",
                false, 0, NullnessAnnotation.CHECK_FOR_NULL);


        database.addMethodParameterAnnotation("java.util.concurrent.Executors$RunnableAdapter", "<init>",
                "(Ljava/lang/Runnable;Ljava/lang/Object;)V", false, 1, NullnessAnnotation.CHECK_FOR_NULL);


        database.addMethodParameterAnnotation("java.util.concurrent.ConcurrentSkipListMap", "<init>",
                "(Ljava/util/Comparator;)V", false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ConcurrentSkipListMap", "doRemove",
                "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", false, 1, NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodParameterAnnotation("java.util.concurrent.ForkJoinPool", "casBarrierStack",
                "(Ljava/util/concurrent/ForkJoinPool$WaitQueueNode;Ljava/util/concurrent/ForkJoinPool$WaitQueueNode;)Z", false,
                0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ForkJoinPool", "casBarrierStack",
                "(Ljava/util/concurrent/ForkJoinPool$WaitQueueNode;Ljava/util/concurrent/ForkJoinPool$WaitQueueNode;)Z", false,
                1, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ForkJoinPool", "casSpareStack",
                "(Ljava/util/concurrent/ForkJoinPool$WaitQueueNode;Ljava/util/concurrent/ForkJoinPool$WaitQueueNode;)Z", false,
                1, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ForkJoinTask", "adapt",
                "(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/ForkJoinTask;", true, 1,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ForkJoinTask", "awaitDone",
                "(Ljava/util/concurrent/ForkJoinWorkerThread;J)I", false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ForkJoinTask", "awaitDone",
                "(Ljava/util/concurrent/ForkJoinWorkerThread;Z)I", false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ForkJoinTask$AdaptedRunnable", "<init>",
                "(Ljava/lang/Runnable;Ljava/lang/Object;)V", false, 1, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ForkJoinWorkerThread", "onTermination",
                "(Ljava/lang/Throwable;)V", false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ForkJoinWorkerThread", "setSlot",
                "([Ljava/util/concurrent/ForkJoinTask;ILjava/util/concurrent/ForkJoinTask;)V", true, 2,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.LinkedTransferQueue", "casCleanMe",
                "(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;)Z", false, 0,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.LinkedTransferQueue", "casCleanMe",
                "(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;)Z", false, 1,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.LinkedTransferQueue", "casHead",
                "(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;)Z", false, 0,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.LinkedTransferQueue", "xfer",
                "(Ljava/lang/Object;ZIJ)Ljava/lang/Object;", false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.LinkedTransferQueue$Itr", "advance",
                "(Ljava/util/concurrent/LinkedTransferQueue$Node;)V", false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.LinkedTransferQueue$Node", "casItem",
                "(Ljava/lang/Object;Ljava/lang/Object;)Z", false, 1, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.LinkedTransferQueue$Node", "casNext",
                "(Ljava/util/concurrent/LinkedTransferQueue$Node;Ljava/util/concurrent/LinkedTransferQueue$Node;)Z", false, 0,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.Phaser", "<init>", "(Ljava/util/concurrent/Phaser;)V", false,
                0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.Phaser", "<init>", "(Ljava/util/concurrent/Phaser;I)V",
                false, 0, NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodAnnotation("java.util.concurrent.locks.ReadWriteLock", "readLock",
                "()Ljava/util/concurrent/locks/Lock;", false, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("java.util.concurrent.locks.ReadWriteLock", "writeLock",
                "()Ljava/util/concurrent/locks/Lock;", false, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("java.util.concurrent.locks.ReentrantReadWriteLock", "readLock",
                "()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;", false, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("java.util.concurrent.locks.ReentrantReadWriteLock", "writeLock",
                "()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;", false, NullnessAnnotation.NONNULL);

        database.addMethodParameterAnnotation("java.util.concurrent.ExecutorService", "submit",
                "(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Future;", false, 1,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.AbstractExecutorService", "submit",
                "(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Future;", false, 1,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ExecutorCompletionService", "submit",
                "(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Future;", false, 1,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.AbstractExecutorServiceNullnessAnnotationDatabase",
                "newTaskFor", "(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Future;", false, 1,
                NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ExecutorCompletionService", "newTaskFor",
                "(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/RunnableFuture;", false, 1,
                NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodParameterAnnotation("java.util.concurrent.ThreadPoolExecutor", "addIfUnderCorePoolSize",
                "(Ljava/lang/Runnable;)Z", false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ThreadPoolExecutor", "addThread",
                "(Ljava/lang/Runnable;)Ljava/lang/Thread;", false, 0, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodParameterAnnotation("java.util.concurrent.ThreadPoolExecutor", "afterExecute",
                "(Ljava/lang/Runnable;Ljava/lang/Throwable;)V", false, 1, NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodParameterAnnotation("java.util.EnumMap", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", false, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.EnumMap", "containsKey", "(Ljava/lang/Object;)Z", false, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.EnumMap", "put",
                "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", false, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.EnumMap", "remove", "(Ljava/lang/Object;)Ljava/lang/Object;", false, 0,
                NullnessAnnotation.NONNULL);

        database.addMethodParameterAnnotation("java.util.SortedMap", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", false, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.SortedMap", "containsKey", "(Ljava/lang/Object;)Ljava/lang/Object;",
                false, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.SortedMap", "put",
                "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", false, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.SortedMap", "remove", "(Ljava/lang/Object;)Ljava/lang/Object;", false,
                0, NullnessAnnotation.NONNULL);

        database.addMethodParameterAnnotation("java.util.SortedSet", "add", "(Ljava/lang/Object;)Z", false, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.SortedSet", "remove", "(Ljava/lang/Object;)Z", false, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.SortedSet", "contains", "(Ljava/lang/Object;)Z", false, 0,
                NullnessAnnotation.NONNULL);

        database.addMethodParameterAnnotation("java.util.Hashtable", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", false, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.Hashtable", "containsKey", "(Ljava/lang/Object;)Z", false, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.Hashtable", "containsValue", "(Ljava/lang/Object;)Z", false, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.Hashtable", "contains", "(Ljava/lang/Object;)Z", false, 0,
                NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.Hashtable", "put",
                "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", false, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.Hashtable", "put",
                "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", false, 1, NullnessAnnotation.NONNULL);

        database.addMethodParameterAnnotation("javax.swing.UIDefaults", "put",
                "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", false, 1, NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodParameterAnnotation("java.util.Properties", "getProperty", "(Ljava/lang/String;)Ljava/lang/String;",
                false, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.Properties", "setProperty",
                "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", false, 1, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.Properties", "setProperty",
                "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", false, 0, NullnessAnnotation.NONNULL);

        database.addMethodParameterAnnotation("org.w3c.dom.Element", "setAttribute", "(Ljava/lang/String;Ljava/lang/String;)V",
                false, 0, NullnessAnnotation.NONNULL);

        database.addMethodParameterAnnotation("java.text.DateFormat", "parse",
                "(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;", false, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.text.DateFormat", "parse", "(Ljava/lang/String;)Ljava/util/Date;", false, 0,
                NullnessAnnotation.NONNULL);

        // addMethodAnnotation("java.util.Queue", "poll",
        // "()Ljava/lang/Object;", false, NullnessAnnotation.CHECK_FOR_NULL);
        database.addMethodAnnotation("java.io.BufferedReader", "readLine", "()Ljava/lang/String;", false,
                NullnessAnnotation.CHECK_FOR_NULL);

        database.addMethodParameterAnnotation("com.google.common.base.Preconditions","checkNotNull","(Ljava/lang/Object;)Ljava/lang/Object;",
                true, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("com.google.common.base.Preconditions","checkNotNull","(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;",
                true, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("com.google.common.base.Preconditions","checkNotNull","(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;",
                true, 0, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("com.google.common.base.Preconditions","checkNotNull","(Ljava/lang/Object;)Ljava/lang/Object;",
                true, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("com.google.common.base.Preconditions","checkNotNull","(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;",
                true, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("com.google.common.base.Preconditions","checkNotNull","(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;",
                true, NullnessAnnotation.NONNULL);

        database.addMethodParameterAnnotation("java.util.Objects","requireNonNull", "(Ljava/lang/Object;)Ljava/lang/Object;",
                true, 0, NullnessAnnotation.NONNULL);
        database.addMethodParameterAnnotation("java.util.Objects","requireNonNull", "(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;",
                true, 0, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("java.util.Objects","requireNonNull", "(Ljava/lang/Object;)Ljava/lang/Object;",
                true, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("java.util.Objects","requireNonNull", "(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;",
                true, NullnessAnnotation.NONNULL);


        database.addMethodAnnotation("org.w3c.dom.Element","getAttribute", "(Ljava/lang/String;)Ljava/lang/String;",
                false, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("org.w3c.dom.Element","getAttributeNS", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;",
                false, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("org.w3c.dom.Element","getElementsByTagName", "(Ljava/lang/String;)Lorg/w3c/dom/NodeList;",
                false, NullnessAnnotation.NONNULL);
        database.addMethodAnnotation("org.w3c.dom.Element","getElementsByTagNameNS", "(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList;",
                false, NullnessAnnotation.NONNULL);


        addEclipseSpecificAnnotations(database);

        AnalysisContext.currentAnalysisContext().setMissingClassWarningsSuppressed(missingClassWarningsSuppressed);

    }
911716
public static <O extends Object> void notNull(O o) {
		if(!validation) return;
		if(o == null)
			throw new ParameterException(ErrorCode.NULLPOINTER);
	}
948307
public static <T> T requireNonNull(String name, T value) {
        Objects.requireNonNull(value, "Argument [" + name + "] cannot be null");
        return value;
    }
88907
public static void validateNull( Object object, String identifier )
        throws PreConditionException
    {
        if( object == null )
        {
            return;
        }
        throw new PreConditionException( identifier + " was NOT NULL." );
    }
95239
void setAnnotation(String key, Object object) {
    checkArgument(object != null, "The stored annotation value cannot be null.");
    Preconditions.checkArgument(
        !annotationMap.containsKey(key), "Cannot overwrite the existing annotation '%s'.", key);
    annotationMap.put(key, object);
  }
1345944
private static void setIfNotNull(String name, Object value, FormBody.Builder form) {
        if (value != null) {
            if (value instanceof Boolean) {
                String numValue = ((Boolean) value) ? "1" : "0";
                form.add(name, numValue);
            } else {
                form.add(name, String.valueOf(value));
            }
        }
    }
479117
@Nonnull
  public static <T> T ensureNonNull(@Nonnull final T value) {
    return Assertions.assertNotNull(value);
  }
433545
public void setStringIfNotNull(@NotNull final String key, @Nullable final String value) {
        if (null != value) {
            setString(key, value);
        }
    }
880730
protected void assertArgumentNotNull(String argumentName, Object value) {
        if (argumentName == null) {
            String msg = "The argument name should not be null: argName=null value=" + value;
            throw new IllegalArgumentException(msg);
        }
        if (value == null) {
            String msg = "The value should not be null: argName=" + argumentName;
            throw new IllegalArgumentException(msg);
        }
    }
194004
public static <T> T checkNotNull(T argument, String errorMessage) {
        if (argument == null) {
            throw new NullPointerException(errorMessage);
        }
        return argument;
    }
1112005
function isNotNull(value, message, id) {
    if (message === void 0) { message = ''; }
    if (id === void 0) { id = ''; }
    if (this.enabled && value === null) {
        throw ValueException.expectedValue(assertionTypes.IS_NOT_NULL, value, null, message, id);
    }
}
733989
protected void addIfNonNull(final JsonObject obj, final String key, final JsonElement value) {

		if (value != null && !JsonNull.INSTANCE.equals(value)) {

			obj.add(key, value);
		}
	}
585319
def _is_null(self, value):
        """"""
        if isinstance(value, six.string_types):
            if not len(value.strip()):
                return True
        return value is None
1158827
void addOption(final String value) {
        Assert.checkNotNullParam("value", value);
        synchronized (options) {
            options.add(value);
        }
    }
1152453
public static void ensureNotNull(String parameterName, Object value) {
    if(value == null) {
      throw LOG.parameterIsNullException(parameterName);
    }
  }