001/**   
002 * @Title: Judge.java 
003 * @Package net.gdface.utils 
004 * @Description: TODO 
005 * @author guyadong   
006 * @date 2015年4月23日 上午9:57:02 
007 * @version V1.0   
008 */
009package net.gdface.utils;
010
011import java.nio.Buffer;
012import java.util.Collection;
013
014/**
015 * 条件判断
016 * 
017 * @author guyadong
018 *
019 */
020public class Judge {
021        /**
022         * 判断数组对象是不是有为null或空的
023         * 
024         * @param args
025         * @return true/false
026         */
027        public static final boolean isEmpty(byte[] arg) {
028                return null==arg||0==arg.length;
029        }
030        /**
031         * 判断所有数组对象是不是有为null或空的,只要有一个,就返回true;
032         * 
033         * @param args
034         * @return true/false
035         */
036        public static final boolean hasEmpty(byte[]... args) {
037                for (byte[] e : args) {
038                        if (null == e || 0 == e.length)
039                                return true;
040                }
041                return false;
042        }
043        /**
044         * 判断对象是不是为null或空的
045         * 
046         * @param arg
047         * @return true/false
048         */
049        public static final boolean isEmpty(String arg) {
050                return (null == arg || arg.isEmpty());
051        }
052        /**
053         * 判断对象是不是为null或空的
054         * @param arg
055         * @return
056         */
057        public static final boolean isEmpty(Buffer arg) {
058                return (null == arg || !arg.hasRemaining());
059        }
060        /**
061         * 判断所有数组对象是不是有为null或空的,只要有一个,就返回true;
062         * 
063         * @param args
064         * @return true/false
065         */
066        public static final boolean hasEmpty(String... args) {
067                for (String e : args) {
068                        if (null == e || 0 == e.length())
069                                return true;
070                }
071                return false;
072        }
073        /**
074         * 判断Collection对象是不是有为null或空的
075         * 
076         * @param arg
077         * @return true/false
078         */
079        public static final <T extends Collection<?>> boolean isEmpty(T arg) {
080                return null == arg || 0 == arg.size();
081        }
082        /**
083         * 判断所有Collection对象是不是有为null或空的,只要有一个,就返回true;
084         * 
085         * @param args
086         * @return true/false
087         */
088        @SafeVarargs
089        public static final <T extends Collection<?>> boolean hasEmpty(T... args) {
090                for (T e : args) {
091                        if (null == e || 0 == e.size())
092                                return true;
093                }
094                return false;
095        }
096        
097        /**
098         * 判断所有{@link Buffer}中是否有为null或空的,只要有一个就返回true,
099         * 
100         * @param args 为null时返回true
101         * @return
102         */
103        public static final boolean hasEmpty(Buffer ...args){
104                if(null == args )return true;
105                for( Buffer e: args){
106                        if(isEmpty(e))return true;
107                }
108                return false;
109        }
110        /**
111         * 判断{@link Collection}中所有{@link Buffer}中是否有为null或空的,只要有一个就返回true,
112         * 
113         * @param args 为null时返回true
114         * @return
115         */
116        public static final boolean hasEmpty(Collection<Buffer> args){
117                if(null == args )return true;
118                for( Buffer e: args){
119                        if(isEmpty(e))return true;
120                }
121                return false;
122        }
123        /**
124         * 判断所有数组对象是不是有为null或空的,只要有一个,就返回true;
125         * 
126         * @param arg
127         * @return true/false
128         */
129        public static final <T> boolean isEmpty(T[] arg) {
130                        return null == arg || 0 == arg.length;
131        }
132        /**
133         * 判断所有数组对象是不是有为null或空的,只要有一个,就返回true;
134         * 
135         * @param args
136         * @return true/false
137         */
138        @SafeVarargs
139        public static final <T> boolean hasEmpty(T[]... args) {
140                for (T[] e : args) {
141                        if (null == e || 0 == e.length)
142                                return true;
143                }
144                return false;
145        }
146        /**
147         * 判断参数是不是为null
148         * 
149         * @param args
150         * @return true/false
151         */
152        public static final <T> boolean isNull(T arg) {
153                return null==arg;               
154        }
155
156        /**
157         * 判断所有参数是不是有为null的,只要有一个,就返回true;
158         * 
159         * @param args
160         * @return true/false
161         */
162        @SafeVarargs
163        public static final <T> boolean hasNull(T... args) {
164                if (null != args) {
165                        for (T e : args) {
166                                if (null == e)
167                                        return true;
168                        }
169                }
170                return false;
171        }
172
173}