Add null safe math operations
[null-analysis.git] / README.asciidoc
blobe5435c498e6cf4811f7858b7cf34a55bc479eb59
1 = Null-Analysis
2 Sebastian Hoß <http://seb.xn--ho-hia.de/[@sebhoss]>
3 :github-org: sebhoss
4 :project-name: null-analysis
5 :project-group: de.xn--ho-hia.quality
7 image:https://img.shields.io/badge/license-cc%20zero-000000.svg["CC Zero", link="http://creativecommons.org/publicdomain/zero/1.0/"]
8 image:https://img.shields.io/maven-central/v/{project-group}/{project-name}.svg?style=flat-square["Maven Central", link="https://maven-badges.herokuapp.com/maven-central/{project-group}/{project-name}"]
9 image:https://www.openhub.net/p/{project-name}/widgets/project_thin_badge.gif["Open Hub statistics", link="https://www.openhub.net/p/{project-name}"]
10 image:https://img.shields.io/travis/{github-org}/{project-name}/master.svg?style=flat-square["Build Status", link="https://travis-ci.org/{github-org}/{project-name}"]
11 image:https://img.shields.io/badge/irc-%23metio.wtf-green.svg?style=flat-square["Chat on IRC", link="http://webchat.freenode.net/?channels=metio.wtf"]
13 Utility library for null analysis in Java projects.
15 == Usage
17 Convert any `@Nullable` reference from legacy code to a `@NonNull` reference by using the `Nullsafe` utility class:
19 [source, java]
20 ----
21 @Nullable Object myObject = ...
22 @NonNull Object nonNullObject = Nullsafe.nonNull(myObject);
23 ----
25 An `IllegalArgumentException` is thrown in case `myObject` is `null`.
27 === Integration
29 To use this project just declare the following dependency inside your POM:
31 [source, xml]
32 ----
33 <dependency>
34   <groupId>de.xn--ho-hia.quality</groupId>
35   <artifactId>null-analysis</artifactId>
36   <version>${version.null-analysis}</version>
37 </dependency
38 ----
40 Replace `${version.null-analysis}` with the http://search.maven.org/#search%7Cga%7C1%7Cg%3Ade.xn--ho-hia.quality%20a%3Anull-analysis[latest release]. This project follows the link:http://semver.org/[semantic versioning guidelines].
42 === Compatibility
44 This project is compatible with the following Java versions:
46 .Java compatibility
47 |===
48 | | 3.X.Y
50 | Java 8
51 | ✓
52 |===
55 == License
57 To the extent possible under law, the author(s) have dedicated all copyright
58 and related and neighboring rights to this software to the public domain
59 worldwide. This software is distributed without any warranty.
61 You should have received a copy of the CC0 Public Domain Dedication along
62 with this software. If not, see http://creativecommons.org/publicdomain/zero/1.0/.