001 //$HeadURL: svn+ssh://jwilden@svn.wald.intevation.org/deegree/base/branches/2.5_testing/src/org/deegree/portal/owswatch/configs/ServiceRequest.java $ 002 /*---------------------------------------------------------------------------- 003 This file is part of deegree, http://deegree.org/ 004 Copyright (C) 2001-2009 by: 005 Department of Geography, University of Bonn 006 and 007 lat/lon GmbH 008 009 This library is free software; you can redistribute it and/or modify it under 010 the terms of the GNU Lesser General Public License as published by the Free 011 Software Foundation; either version 2.1 of the License, or (at your option) 012 any later version. 013 This library is distributed in the hope that it will be useful, but WITHOUT 014 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 015 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 016 details. 017 You should have received a copy of the GNU Lesser General Public License 018 along with this library; if not, write to the Free Software Foundation, Inc., 019 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 020 021 Contact information: 022 023 lat/lon GmbH 024 Aennchenstr. 19, 53177 Bonn 025 Germany 026 http://lat-lon.de/ 027 028 Department of Geography, University of Bonn 029 Prof. Dr. Klaus Greve 030 Postfach 1147, 53001 Bonn 031 Germany 032 http://www.geographie.uni-bonn.de/deegree/ 033 034 e-mail: info@deegree.org 035 ----------------------------------------------------------------------------*/ 036 037 package org.deegree.portal.owswatch.configs; 038 039 import java.io.BufferedReader; 040 import java.io.File; 041 import java.io.FileReader; 042 import java.io.IOException; 043 import java.io.Serializable; 044 import java.util.List; 045 046 /** 047 * Holds the information about a certain request of a certain service, which http methods, this request cn use and what 048 * are its htmlKeys 049 * 050 * @author <a href="mailto:elmasry@lat-lon.de">Moataz Elmasry</a> 051 * @author last edited by: $Author: jmays $ 052 * 053 * @version $Revision: 20271 $, $Date: 2009-10-21 13:07:15 +0200 (Mi, 21 Okt 2009) $ 054 */ 055 public class ServiceRequest implements Serializable { 056 057 /** 058 * 059 */ 060 private static final long serialVersionUID = -7463404275670442560L; 061 062 private String name = null; 063 064 private String getSnippetPath = null; 065 066 private boolean canPOST = true; 067 068 private boolean canGET = true; 069 070 private String htmlText = null; 071 072 private List<String> htmlKeys = null; 073 074 // Reads an example xml file for a post request, will be used mainly for GetCapabilities. but its also possbible 075 // to assign it to any request type 076 private String postRequest = null; 077 078 /** 079 * A constructor to instantate a class describing the service name and its corresponding html code that accepts 080 * specific paramters for this request 081 * 082 * @param name 083 * @param getSnippetPath 084 * @param postSnippetPath 085 * @param canPOST 086 * @param canGET 087 * @param htmlKeys 088 * @throws IOException 089 */ 090 public ServiceRequest( String name, String getSnippetPath, String postSnippetPath, boolean canPOST, boolean canGET, 091 List<String> htmlKeys ) throws IOException { 092 this.name = name; 093 this.canPOST = canPOST; 094 this.canGET = canGET; 095 this.htmlText = readFileToString( getSnippetPath ); 096 this.postRequest = readFileToString( postSnippetPath ); 097 this.htmlKeys = htmlKeys; 098 099 } 100 101 /** 102 * Reads the html snippet file and save it as a String variable to be used later by the DHTML 103 * 104 * @param filePath 105 * @return String 106 * @throws IOException 107 */ 108 protected String readFileToString( String filePath ) 109 throws IOException { 110 111 if ( filePath == null || filePath.length() == 0 ) { 112 // A Html Text is not necessary in all cases, ex. in case GetCapabilities there 113 // are no extra fields 114 return ""; 115 } 116 117 File file = new File( filePath ); 118 BufferedReader reader = new BufferedReader( new FileReader( file.getCanonicalFile() ) ); 119 String line = reader.readLine(); 120 StringBuilder builder = new StringBuilder( 500 ); 121 while ( line != null ) { 122 builder.append( line ); 123 line = reader.readLine(); 124 } 125 return builder.toString(); 126 } 127 128 /** 129 * @return Request name, ex GetCapabilities 130 */ 131 public String getName() { 132 return name; 133 } 134 135 /** 136 * @return path to html code describing the parameters for this service 137 */ 138 public String getValue() { 139 return getSnippetPath; 140 } 141 142 /** 143 * @return can send GET Requests 144 */ 145 public boolean isCanGET() { 146 return canGET; 147 } 148 149 /** 150 * @return can send POST requests 151 */ 152 public boolean isCanPOST() { 153 return canPOST; 154 } 155 156 /** 157 * @return String 158 */ 159 public String getHtmlText() { 160 return htmlText; 161 } 162 163 /** 164 * @return List of HTML keys 165 */ 166 public List<String> getHtmlKeys() { 167 return htmlKeys; 168 } 169 170 /** 171 * Reads an example xml file for a post request, will be used mainly for GetCapabilities. but its also possbible to 172 * assign it to any request type 173 * 174 * @return String 175 */ 176 public String getPostRequest() { 177 return postRequest; 178 } 179 }