001: //$Id: IDataSet.java 256 2006-10-23 21:56:10Z jg_hamburg $
002: /********************************************************************************
003: * DDTUnit, a Datadriven Approach to Unit- and Moduletesting
004: * Copyright (c) 2004, Joerg and Kai Gellien
005: * All rights reserved.
006: *
007: * The Software is provided under the terms of the Common Public License 1.0
008: * as provided with the distribution of DDTUnit in the file cpl-v10.html.
009: * Redistribution and use in source and binary forms, with or without
010: * modification, are permitted provided that the following conditions
011: * are met:
012: *
013: * + Redistributions of source code must retain the above copyright
014: * notice, this list of conditions and the following disclaimer.
015: *
016: * + Redistributions in binary form must reproduce the above
017: * copyright notice, this list of conditions and the following
018: * disclaimer in the documentation and/or other materials provided
019: * with the distribution.
020: *
021: * + Neither the name of the authors or DDTUnit, nor the
022: * names of its contributors may be used to endorse or promote
023: * products derived from this software without specific prior
024: * written permission.
025: *
026: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
027: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
028: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
029: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
030: * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
031: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
032: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
033: * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
034: * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
035: * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
036: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
037: ********************************************************************************/package junitx.ddtunit.data;
038:
039: import java.util.Collection;
040: import java.util.Iterator;
041:
042: public interface IDataSet {
043:
044: /**
045: * add new entry to local object map
046: *
047: * @param id
048: * @param entry
049: */
050: public abstract void putObject(String id, TypedObject entry);
051:
052: /**
053: * Retrieve object entry from local object map
054: *
055: * @param id
056: * @param type
057: * @return selected object or null if not found
058: */
059: public abstract TypedObject getObject(String id, String type);
060:
061: public abstract TypedObject findObject(String id, String type);
062:
063: /**
064: * Retrieve object entry from local object map
065: *
066: * @param id
067: * @return selected object
068: * @throws junitx.ddtunit.DDTException if multiple entries for id exist
069: */
070: public abstract TypedObject getObject(String id);
071:
072: public abstract TypedObject findObject(String id);
073:
074: /**
075: *
076: * @param id
077: * @param dataSet
078: */
079: public abstract void put(String id, IDataSet dataSet);
080:
081: /**
082: * Retrieve DataSet specified by id
083: *
084: * @param id
085: * @return dataset or null if nothing found
086: */
087: public abstract IDataSet get(String id);
088:
089: /**
090: * Check if provided key is instained in sub object map
091: *
092: * @param key
093: * @return true if found else false
094: */
095: public abstract boolean containsKey(String key);
096:
097: /**
098: * Retrieve iterator over all keys provided by sub datasets
099: *
100: * @return Iterator to process all keys
101: */
102: abstract Iterator getSubDataIterator();
103:
104: /**
105: * Retrieve iterator over all dataSets provided as subelements of this
106: * dataSet.
107: *
108: * @return Iterator to process all subDataSets
109: */
110: abstract Collection getSubDataValues();
111:
112: /**
113: * Retrieve number of sub datasets
114: *
115: * @return count of sub datasets
116: */
117: public abstract int size();
118:
119: /**
120: * Retrieve id of DataSet
121: * @return id of dataset
122: */
123: public abstract String getId();
124:
125: }
|