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 }