View Javadoc

1   //$Id: IDataSet.java 256 2006-10-23 21:56:10Z jg_hamburg $
2   /********************************************************************************
3    * DDTUnit, a Datadriven Approach to Unit- and Moduletesting
4    * Copyright (c) 2004, Joerg and Kai Gellien
5    * All rights reserved.
6    *
7    * The Software is provided under the terms of the Common Public License 1.0
8    * as provided with the distribution of DDTUnit in the file cpl-v10.html.
9    * Redistribution and use in source and binary forms, with or without
10   * modification, are permitted provided that the following conditions
11   * are met:
12   *
13   *     + Redistributions of source code must retain the above copyright
14   *       notice, this list of conditions and the following disclaimer.
15   *
16   *     + Redistributions in binary form must reproduce the above
17   *       copyright notice, this list of conditions and the following
18   *       disclaimer in the documentation and/or other materials provided
19   *       with the distribution.
20   *
21   *     + Neither the name of the authors or DDTUnit, nor the
22   *       names of its contributors may be used to endorse or promote
23   *       products derived from this software without specific prior
24   *       written permission.
25   *
26   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27   * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28   * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29   * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
30   * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31   * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32   * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33   * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34   * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35   * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37   ********************************************************************************/
38  package junitx.ddtunit.data;
39  
40  import java.util.Collection;
41  import java.util.Iterator;
42  
43  public interface IDataSet {
44  
45      /**
46       * add new entry to local object map
47       * 
48       * @param id
49       * @param entry
50       */
51      public abstract void putObject(String id, TypedObject entry);
52  
53      /**
54       * Retrieve object entry from local object map
55       * 
56       * @param id
57       * @param type
58       * @return selected object or null if not found
59       */
60      public abstract TypedObject getObject(String id, String type);
61  
62      public abstract TypedObject findObject(String id, String type);
63  
64      /**
65       * Retrieve object entry from local object map
66       * 
67       * @param id
68       * @return selected object
69       * @throws junitx.ddtunit.DDTException if multiple entries for id exist
70       */
71      public abstract TypedObject getObject(String id);
72  
73      public abstract TypedObject findObject(String id);
74  
75      /**
76       * 
77       * @param id
78       * @param dataSet
79       */
80      public abstract void put(String id, IDataSet dataSet);
81  
82      /**
83       * Retrieve DataSet specified by id
84       * 
85       * @param id
86       * @return dataset or null if nothing found
87       */
88      public abstract IDataSet get(String id);
89  
90      /**
91       * Check if provided key is instained in sub object map
92       * 
93       * @param key
94       * @return true if found else false
95       */
96      public abstract boolean containsKey(String key);
97  
98      /**
99       * Retrieve iterator over all keys provided by sub datasets
100      * 
101      * @return Iterator to process all keys
102      */
103     abstract Iterator getSubDataIterator();
104 
105     /**
106      * Retrieve iterator over all dataSets provided as subelements of this
107      * dataSet.
108      * 
109      * @return Iterator to process all subDataSets
110      */
111     abstract Collection getSubDataValues();
112 
113     /**
114      * Retrieve number of sub datasets
115      * 
116      * @return count of sub datasets
117      */
118     public abstract int size();
119 
120     /**
121      * Retrieve id of DataSet
122      * @return id of dataset
123      */
124     public abstract String getId();
125 
126 }