d59fbc27a93241a0a4f8608c002f2d6b3c9555ec
[groupbasedpolicy.git] / groupbasedpolicy / src / main / java / org / opendaylight / groupbasedpolicy / dto / ValidationResultBuilder.java
1 /*\r
2  * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.groupbasedpolicy.dto;\r
9 \r
10 \r
11 import javax.annotation.Nonnull;\r
12 \r
13 import org.opendaylight.groupbasedpolicy.api.ValidationResult;\r
14 import org.opendaylight.yangtools.concepts.Builder;\r
15 \r
16 public final class ValidationResultBuilder implements Builder<ValidationResult> {\r
17 \r
18     private static final class ValidationResultImpl implements ValidationResult {\r
19 \r
20         private final boolean success;\r
21         private final String message;\r
22 \r
23         private ValidationResultImpl(final boolean success, final String message) {\r
24             this.success = success;\r
25             this.message = message;\r
26         }\r
27 \r
28         @Override\r
29         public boolean isValid() {\r
30             return success;\r
31         }\r
32 \r
33         @Override\r
34         public String getMessage() {\r
35             return message;\r
36         }\r
37     }\r
38 \r
39     private boolean success;\r
40     private String message = "";\r
41 \r
42     public ValidationResultBuilder success() {\r
43         this.success = true;\r
44         return this;\r
45     }\r
46 \r
47     /**\r
48      * Returns a builder for a failed result.\r
49      */\r
50     public ValidationResultBuilder failed() {\r
51         this.success = false;\r
52         return this;\r
53     }\r
54 \r
55     /**\r
56      * Returns a builder for a failed result.\r
57      *\r
58      * @param message brief explanation\r
59      * @throws IllegalArgumentException when message is null\r
60      */\r
61     public ValidationResultBuilder setMessage(@Nonnull String message) {\r
62         if (message == null) {\r
63             throw new IllegalArgumentException("Result message cannot be set to NULL!");\r
64         }\r
65         this.message = message;\r
66         return this;\r
67     }\r
68 \r
69     @Override\r
70     public ValidationResult build() {\r
71         return new ValidationResultImpl(success, message);\r
72     }\r
73 \r
74 }\r