Main Page | Packages | Class Hierarchy | Class List | File List | Class Members

DataSourceStub.java

Go to the documentation of this file.
00001 //$Id: DataSourceStub_8java-source.html 336 2010-01-12 20:03:17Z linus $
00002 //Copyright (c) 2003, Mikael Albertsson, Mattias Danielsson, Per Engström, 
00003 //Fredrik Gröndahl, Martin Gyllensten, Anna Kent, Anders Olsson, 
00004 //Mattias Sidebäck.
00005 //All rights reserved.
00006 //
00007 //Redistribution and use in source and binary forms, with or without 
00008 //modification, are permitted provided that the following conditions are met:
00009 //
00010 //* Redistributions of source code must retain the above copyright notice, 
00011 //  this list of conditions and the following disclaimer.
00012 // 
00013 //* Redistributions in binary form must reproduce the above copyright 
00014 //  notice, this list of conditions and the following disclaimer in the 
00015 //  documentation and/or other materials provided with the distribution.
00016 //
00017 //* Neither the name of the University of Linköping nor the names of its 
00018 //  contributors may be used to endorse or promote products derived from 
00019 //  this software without specific prior written permission. 
00020 //
00021 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
00022 //AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
00023 //IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
00024 //ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
00025 //LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
00026 //CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
00027 //SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
00028 //INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
00029 //CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
00030 //ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 
00031 //THE POSSIBILITY OF SUCH DAMAGE.
00032 
00033 package org.argoprint;
00034 
00035 import java.lang.reflect.Method;
00036 import java.util.Vector;
00037 
00038 /**
00039  * A stub implementation of a data source, for testing.
00040  */
00041 public class DataSourceStub implements ArgoPrintDataSource {
00042     
00043     /**
00044      * Applies the method with name call with no parameters to the iteratorObject 
00045      */ 
00046     public Object caller(String call, Object iteratorObject)
00047     throws Exception {
00048         Object returnValue = null;
00049         Method callMethod = iteratorObject.getClass().getMethod(call, new Class[0]);
00050         returnValue = callMethod.invoke(iteratorObject, new Object[0]);
00051         return returnValue;
00052     }
00053     
00054     /**
00055      * Returns some constant values.
00056      */
00057     public Object caller(String call) 
00058     throws Exception {
00059         Vector v = new Vector(5);
00060         if (call.equals("getString()"))
00061             return new String("Return value of getString() in DataSourceStub.");
00062         else if (call.equals("getCollection()")) {
00063             v.add(0, "object1");
00064             v.add(1, "object2");
00065             v.add(2, "object3");
00066             v.add(3, "object4");
00067             v.add(4, "object5");
00068             return v;
00069         }
00070         else if (call.equals("getTrueBoolean()"))
00071             return new Boolean(true);
00072         else if (call.equals("getFalseBoolean()"))
00073             return new Boolean(false);
00074         else
00075             throw new Exception("Unsupported call.");   
00076     }
00077 }

Generated on Tue Dec 2 22:50:56 2003 for ArgoPrint by doxygen 1.3.4