View Javadoc
1   /*
2    * Copyright 2011 Jakub Narloch
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.castor.core.util;
17  
18  /**
19   * A helper class that defines a method used for validating the input arguments.
20   *
21   * @author <a href="mailto:jmnarloch AT gmail DOT com">Jakub Narloch</a>
22   * @version 1.3.3
23   * @since 1.3.3
24   */
25  public class Assert {
26  
27      /**
28       * Represents the error message used as exception description when a parameter is null.
29       */
30      private static final String NULL_PARAM_MESSAGE = "Parameter %s can not be null.";
31  
32      /**
33       * Represents the error message used as exception description when a parameter is null or empty string.
34       */
35      private static final String EMPTY_PARAM_MESSAGE = "Parameter %s can not be null or empty.";
36  
37      /**
38       * Creates new instance of {@link Assert} class. </p> Private constructor prevents instantiation outside this
39       * class.
40       */
41      private Assert() {
42          // empty constructor
43      }
44  
45      /**
46       * Asserts that passed parameter is not null. In case it is, then an 
47       * {@link IllegalArgumentException} is thrown.
48       *
49       * @param param the parameter to check
50       * @param paramName the parameter name
51       *
52       * @throws IllegalArgumentException if param is null
53       */
54      public static void paramNotNull(Object param, String paramName) {
55          notNull(param, String.format(NULL_PARAM_MESSAGE, paramName));
56      }
57  
58      /**
59       * Asserts that passed parameter is not null and not empty. In case it is, 
60       * then an {@link IllegalArgumentException} is thrown.
61       *
62       * @param param the parameter to check
63       * @param paramName the parameter name
64       *
65       * @throws IllegalArgumentException if param is null or empty string
66       */
67      public static void paramNotEmpty(String param, String paramName) {
68          notEmpty(param, String.format(EMPTY_PARAM_MESSAGE, paramName));
69      }
70  
71      /**
72       * Asserts that passed object instance is not null. In case it is, 
73       * then an {@link IllegalArgumentException} is thrown.
74       *
75       * @param obj the object instance to check
76       * @param msg the error message to use
77       *
78       * @throws IllegalArgumentException if obj is null
79       */
80      public static void notNull(Object obj, String msg) {
81          if (obj == null) {
82              throw new IllegalArgumentException(msg);
83          }
84      }
85  
86      /**
87       * Asserts that passed object instance is not null and not empty. In case 
88       * it is, then an {@link IllegalArgumentException} is thrown.
89       *
90       * @param obj the object instance to check
91       * @param msg the error message to use
92       *
93       * @throws IllegalArgumentException if obj is null or empty string
94       */
95      public static void notEmpty(String obj, String msg) {
96          notNull(obj, msg);
97          if (obj.trim().length() == 0) {
98              throw new IllegalArgumentException(msg);
99          }
100     }
101 }