X Tutup
### Code Design * Model is based on Objects and not primitives that allows nullify requests and have null values for data that wasn't provided by docker daemon. * For null safeness findbugs annotations are used. ** Every method that may return `null` (and we are unsure in any fields as docker daemon may change something) should be annotated with `@CheckForNull` return qualifier from `javax.annotation` package. ** Methods that can't return `null` must be annotated with `@Nonnull`. ** The same for Arguments. ** `@Nullable` must be used only for changing inherited (other typed) qualifier. * Setters in builder style must be prefixed with `withXX`. * All classes should provide `toString()` `equals()` and `hashCode()` defined methods. * Javadocs ** Provide full information on field: *** For models define API version with `@since {@link RemoteApiVersion#VERSION_1_X}`. ** getters/setters should refernce to field `@see #$field`. ### Coding style * TBD, some initial styling already enforced with checkstyle. IDEA/checkstyle file analogues will be provided soon. ### Testing * Unit tests for serder (serialization-deserialization). * Integration tests for commands. * If model object has builders, then fill it with data and compare by `equals()` with expected response from docker daemon. If failed, then some fields mappings are wrong.
X Tutup