001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/tags/2.1/src/org/deegree/framework/concurrent/DoServiceTask.java $
002 /*---------------- FILE HEADER ------------------------------------------
003 This file is part of deegree.
004 Copyright (C) 2001-2006 by:
005 Department of Geography, University of Bonn
006 http://www.giub.uni-bonn.de/deegree/
007 lat/lon GmbH
008 http://www.lat-lon.de
009 This library is free software; you can redistribute it and/or
010 modify it under the terms of the GNU Lesser General Public
011 License as published by the Free Software Foundation; either
012 version 2.1 of the License, or (at your option) any later version.
013 This library is distributed in the hope that it will be useful,
014 but WITHOUT ANY WARRANTY; without even the implied warranty of
015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
016 Lesser General Public License for more details.
017 You should have received a copy of the GNU Lesser General Public
018 License along with this library; if not, write to the Free Software
019 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
020 Contact:
021 Andreas Poth
022 lat/lon GmbH
023 Aennchenstrasse 19
024 53177 Bonn
025 Germany
026 E-Mail: poth@lat-lon.de
027 Jens Fitzke
028 lat/lon GmbH
029 Aennchenstrasse 19
030 53177 Bonn
031 Germany
032 E-Mail: jens.fitzke@uni-bonn.de
033 ---------------------------------------------------------------------------*/
034 package org.deegree.framework.concurrent;
035
036 import java.util.concurrent.Callable;
037
038 import org.deegree.ogcwebservices.OGCWebService;
039 import org.deegree.ogcwebservices.OGCWebServiceRequest;
040
041 /**
042 * <code>DoServiceTask</code> is the Callable class that should be used by all services to invoke
043 * other services.
044 *
045 * @author <a href="mailto:schmitz@lat-lon.de">Andreas Schmitz</a>
046 * @author last edited by: $Author: mschneider $
047 *
048 * @version $Revision: 6561 $, $Date: 2007-04-10 17:24:04 +0200 (Di, 10 Apr 2007) $
049 * @param <T>
050 */
051 public class DoServiceTask<T> implements Callable<T> {
052
053 OGCWebService webService;
054
055 OGCWebServiceRequest request;
056
057 /**
058 * @param webService
059 * @param request
060 */
061 public DoServiceTask( OGCWebService webService, OGCWebServiceRequest request ) {
062 this.webService = webService;
063 this.request = request;
064 }
065
066 /**
067 * @return the result of the execution
068 */
069 @SuppressWarnings("unchecked")
070 public T call()
071 throws Exception {
072 return (T)this.webService.doService( request );
073 }
074 }