1   package com.mccrory.scott.spumoni;
2   
3   ////////////////////////////////////////////////////////////////////////////////
4   // Copyright (C) 2002  Scott McCrory
5   //
6   // This program is free software; you can redistribute it and/or
7   // modify it under the terms of the GNU General Public License
8   // as published by the Free Software Foundation; either version 2
9   // of the License, or (at your option) any later version.
10  //
11  // This program is distributed in the hope that it will be useful,
12  // but WITHOUT ANY WARRANTY; without even the implied warranty of
13  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  // GNU General Public License for more details.
15  //
16  // You should have received a copy of the GNU General Public License
17  // along with this program; if not, write to the Free Software
18  // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19  ////////////////////////////////////////////////////////////////////////////////
20  
21  import java.io.IOException;
22  import java.io.ObjectInputStream;
23  import java.io.ObjectOutputStream;
24  import java.util.Vector;
25  
26  /**
27   * <P><code>StatsValueList</code> is a collection of StatsValue objects.
28   * Includes methods used for operating on that group of objects.</P>
29   *
30   * @author <a href="mailto:smccrory@users.sourceforge.net">Scott McCrory</a>.
31   * @version CVS $Id: StatsValueList.java,v 1.8 2002/08/04 22:04:53 smccrory Exp $
32   */
33  public class StatsValueList extends java.util.Vector {
34  
35      /**
36       * Basic StatsValueList constructor.
37       */
38      public StatsValueList() {
39          super();
40      }
41      
42      /**
43       * StatsValueList constructor with preset minimum size.
44       * @param initialCapacity Initial capacity
45       */
46      public StatsValueList(int initialCapacity) {
47          super(initialCapacity);
48      }
49      
50      /**
51       * StatsValueList constructor with preset minimum size and capacity increment.
52       * @param initialCapacity Initial capacity
53       * @param capacityIncrement Capacity increment
54       */
55      public StatsValueList(int initialCapacity, int capacityIncrement) {
56          super(initialCapacity, capacityIncrement);
57      }
58      
59      /**
60       * Convenience constructor for creating a new StatsValueList and populating
61       * it with a single StatsValue.
62       * @param sVal The StatsValue which will be immediately added
63       */
64      public StatsValueList(StatsValue sVal) {
65          this();
66          this.add(sVal);
67      }
68      
69      /**
70       * Returns a vector of all of the OIDs in the contained StatsValues
71       * @return A vector of all of the OIDs in the contained StatsValues
72       */
73      public Vector getOids() {
74          
75          Vector oids = new Vector();
76  
77          for (int i = 0; i < this.size(); i++) {
78  
79              StatsValue sv = (StatsValue) get(i);
80              oids.add(sv.getSnmpOid());
81  
82          }
83  
84          return oids;
85          
86      }
87      
88      /**
89       * Returns a value String corresponding to the specified OID.
90       * @return java.lang.String
91       * @param oid java.lang.String
92       * @exception java.util.NoSuchElementException if the OID isn't found.
93       */
94      public String getValueByOid(String oid)
95          throws java.util.NoSuchElementException {
96  
97          for (int i = 0; i < this.size(); i++) {
98  
99              StatsValue sValue = (StatsValue) get(i);
100             if (sValue.getSnmpOid().equals(oid)) {
101                 return sValue.getValue();
102             }
103 
104         }
105 
106         throw new java.util.NoSuchElementException("OID " + oid + " not found");
107 
108     }
109     
110     /**
111      * We override the <code>readObject</code> method here to prevent
112      * deserialization of our class for security reasons.
113      *
114      * @param in java.io.ObjectInputStream
115      * @throws IOException thrown if a problem occurs
116      **/
117     private final void readObject(ObjectInputStream in) throws IOException {
118 
119         throw new IOException("Object cannot be deserialized");
120 
121     }
122     
123     /**
124      * Unsets all of the values.
125      * Typically done just before another round of stats collection.
126      */
127     public void unsetValues() {
128 
129         for (int j = 0; j < this.size(); j++) {
130             StatsValue sValue = (StatsValue) get(j);
131             sValue.unset();
132         }
133 
134     }
135     
136     /**
137      * We override the <code>writeObject</code> method here to prevent
138      * serialization of our class for security reasons.
139      *
140      * @param out java.io.ObjectOutputStream
141      * @throws IOException thrown if a problem occurs
142      **/
143     private final void writeObject(ObjectOutputStream out) throws IOException {
144 
145         throw new IOException("Object cannot be serialized");
146 
147     }
148     
149 }