Revision 2648 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/util/ContainerUtils.java

View differences:

ContainerUtils.java
76 76
        if( x instanceof Object[] ) {
77 77
            return ((Object[])x).length;
78 78
        }
79
        if( x instanceof Iterator ) {
80
            long i = 0;
81
            while( ((Iterator) x).hasNext() ) {
82
                ((Iterator) x).next();
83
                i++;
84
            }
85
            return i;
86
        }
87
        if( x instanceof Iterable ) {
88
            Iterator it = ((Iterable)x).iterator();
89
            long i = 0;
90
            while( ((Iterator) it).hasNext() ) {
91
                ((Iterator) it).next();
92
                i++;
93
            }
94
            return i;
95
        }
79 96
        return -1;
80 97
    }
81 98
    
......
118 135
        if( x instanceof Object[] ) {
119 136
            return ((Object[])x).length;
120 137
        }
138
        if( x instanceof Iterator ) {
139
            int i = 0;
140
            while( ((Iterator) x).hasNext() ) {
141
                ((Iterator) x).next();
142
                i++;
143
            }
144
            return i;
145
        }
146
        if( x instanceof Iterable ) {
147
            Iterator it = ((Iterable)x).iterator();
148
            int i = 0;
149
            while( ((Iterator) it).hasNext() ) {
150
                ((Iterator) it).next();
151
                i++;
152
            }
153
            return i;
154
        }
121 155
        return -1;
122 156
    }
123 157
    
......
143 177
        if( x instanceof Map) {
144 178
            return ((Map)x).isEmpty();
145 179
        }
180
        if( x instanceof Iterator ) {
181
            return ((Iterator) x).hasNext();
182
        }
183
        if( x instanceof Iterable ) {
184
            Iterator it = ((Iterable)x).iterator();
185
            return it.hasNext();
186
        }
146 187
        return defaultValue;
147 188
    }
148 189
    
......
190 231
        return null;
191 232
    }
192 233
    
234
    public static Object get64(Object x, Object key) {
235
        return get(x,key);
236
    }
237
    
193 238
    public static Object get(GetItem x, int position) {
194 239
        return x.get(position);
195 240
    }
......
217 262
        if( x instanceof Map ) {
218 263
            return ((Map)x).get(key);
219 264
        }
265
        if( key instanceof Number ) {
266
            if( x instanceof GetItem ) {
267
                return ((GetItem)x).get(((Number) key).intValue());
268
            }
269
            if( x instanceof List) {
270
                return ((List)x).get(((Number) key).intValue());
271
            }
272
            if( x instanceof GetItem64) {
273
                return ((GetItem64)x).get64(((Number) key).longValue());
274
            }
275
            if( x instanceof Object[] ) {
276
                return ((Object[])x)[((Number) key).intValue()];
277
            }
278
        }
220 279
        return null;
221 280
    }
222 281
    

Also available in: Unified diff