View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.collections.primitives;
18  
19  import org.apache.commons.collections.primitives.decorators.UnmodifiableDoubleIterator;
20  import org.apache.commons.collections.primitives.decorators.UnmodifiableDoubleList;
21  import org.apache.commons.collections.primitives.decorators.UnmodifiableDoubleListIterator;
22  
23  /**
24   * This class consists exclusively of static methods that operate on or
25   * return DoubleCollections.
26   * <p>
27   * The methods of this class all throw a NullPoDoubleerException if the 
28   * provided collection is null.
29   * 
30   * @version $Revision: 480460 $ $Date: 2006-11-29 03:14:21 -0500 (Wed, 29 Nov 2006) $
31   * 
32   * @author Rodney Waldhoff 
33   */
34  public final class DoubleCollections {
35  
36      /**
37       * Returns an unmodifiable DoubleList containing only the specified element.
38       * @param value the single value
39       * @return an unmodifiable DoubleList containing only the specified element.
40       */    
41      public static DoubleList singletonDoubleList(double value) {
42          // TODO: a specialized implementation of DoubleList may be more performant
43          DoubleList list = new ArrayDoubleList(1);
44          list.add(value);
45          return UnmodifiableDoubleList.wrap(list);
46      }
47  
48      /**
49       * Returns an unmodifiable DoubleIterator containing only the specified element.
50       * @param value the single value
51       * @return an unmodifiable DoubleIterator containing only the specified element.
52       */    
53      public static DoubleIterator singletonDoubleIterator(double value) {
54          return singletonDoubleList(value).iterator();
55      }
56  
57      /**
58       * Returns an unmodifiable DoubleListIterator containing only the specified element.
59       * @param value the single value
60       * @return an unmodifiable DoubleListIterator containing only the specified element.
61       */    
62      public static DoubleListIterator singletonDoubleListIterator(double value) {
63          return singletonDoubleList(value).listIterator();
64      }
65  
66      /**
67       * Returns an unmodifiable version of the given non-null DoubleList.
68       * @param list the non-null DoubleList to wrap in an unmodifiable decorator
69       * @return an unmodifiable version of the given non-null DoubleList
70       * @throws NullPointerException if the given DoubleList is null
71       * @see org.apache.commons.collections.primitives.decorators.UnmodifiableDoubleList#wrap
72       */    
73      public static DoubleList unmodifiableDoubleList(DoubleList list) throws NullPointerException {
74          if(null == list) {
75              throw new NullPointerException();
76          }
77          return UnmodifiableDoubleList.wrap(list);
78      }
79      
80      /**
81       * Returns an unmodifiable version of the given non-null DoubleIterator.
82       * @param iter the non-null DoubleIterator to wrap in an unmodifiable decorator
83       * @return an unmodifiable version of the given non-null DoubleIterator
84       * @throws NullPointerException if the given DoubleIterator is null
85       * @see org.apache.commons.collections.primitives.decorators.UnmodifiableDoubleIterator#wrap
86       */    
87      public static DoubleIterator unmodifiableDoubleIterator(DoubleIterator iter) {
88          if(null == iter) {
89              throw new NullPointerException();
90          }
91          return UnmodifiableDoubleIterator.wrap(iter);
92      }
93          
94      /**
95       * Returns an unmodifiable version of the given non-null DoubleListIterator.
96       * @param iter the non-null DoubleListIterator to wrap in an unmodifiable decorator
97       * @return an unmodifiable version of the given non-null DoubleListIterator
98       * @throws NullPointerException if the given DoubleListIterator is null
99       * @see org.apache.commons.collections.primitives.decorators.UnmodifiableDoubleListIterator#wrap
100      */    
101     public static DoubleListIterator unmodifiableDoubleListIterator(DoubleListIterator iter) {
102         if(null == iter) {
103             throw new NullPointerException();
104         }
105         return UnmodifiableDoubleListIterator.wrap(iter);
106     }
107     
108     /**
109      * Returns an unmodifiable, empty DoubleList.
110      * @return an unmodifiable, empty DoubleList.
111      * @see #EMPTY_DOUBLE_LIST
112      */    
113     public static DoubleList getEmptyDoubleList() {
114         return EMPTY_DOUBLE_LIST;
115     }
116     
117     /**
118      * Returns an unmodifiable, empty DoubleIterator
119      * @return an unmodifiable, empty DoubleIterator.
120      * @see #EMPTY_DOUBLE_ITERATOR
121      */    
122     public static DoubleIterator getEmptyDoubleIterator() {
123         return EMPTY_DOUBLE_ITERATOR;
124     }
125     
126     /**
127      * Returns an unmodifiable, empty DoubleListIterator
128      * @return an unmodifiable, empty DoubleListIterator.
129      * @see #EMPTY_DOUBLE_LIST_ITERATOR
130      */    
131     public static DoubleListIterator getEmptyDoubleListIterator() {
132         return EMPTY_DOUBLE_LIST_ITERATOR;
133     }    
134 
135     /**
136      * An unmodifiable, empty DoubleList
137      * @see #getEmptyDoubleList
138      */    
139     public static final DoubleList EMPTY_DOUBLE_LIST = unmodifiableDoubleList(new ArrayDoubleList(0));
140 
141     /**
142      * An unmodifiable, empty DoubleIterator
143      * @see #getEmptyDoubleIterator
144      */    
145     public static final DoubleIterator EMPTY_DOUBLE_ITERATOR = unmodifiableDoubleIterator(EMPTY_DOUBLE_LIST.iterator());
146 
147     /**
148      * An unmodifiable, empty DoubleListIterator
149      * @see #getEmptyDoubleListIterator
150      */    
151     public static final DoubleListIterator EMPTY_DOUBLE_LIST_ITERATOR = unmodifiableDoubleListIterator(EMPTY_DOUBLE_LIST.listIterator());
152 }