1 /* 2 * This file is part of Waarp Project (named also Waarp or GG). 3 * 4 * Copyright (c) 2019, Waarp SAS, and individual contributors by the @author 5 * tags. See the COPYRIGHT.txt in the distribution for a full listing of 6 * individual contributors. 7 * 8 * All Waarp Project is free software: you can redistribute it and/or 9 * modify it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation, either version 3 of the License, or (at your 11 * option) any later version. 12 * 13 * Waarp is distributed in the hope that it will be useful, but WITHOUT ANY 14 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 * A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License along with 18 * Waarp . If not, see <http://www.gnu.org/licenses/>. 19 */ 20 package org.waarp.gateway.kernel; 21 22 import java.util.LinkedHashMap; 23 import java.util.Map; 24 25 /** 26 * 27 */ 28 public abstract class AbstractHttpBusinessRequest { 29 protected final LinkedHashMap<String, AbstractHttpField> fields; 30 protected final HttpPage page; 31 32 /** 33 * Default constructor 34 * 35 * @param fields 36 * @param page 37 */ 38 protected AbstractHttpBusinessRequest( 39 final LinkedHashMap<String, AbstractHttpField> fields, 40 final HttpPage page) { 41 this.fields = fields; 42 this.page = page; 43 } 44 45 /** 46 * @return the Map<String, AbstractHttpField> associated with the 47 * current request 48 */ 49 public final Map<String, AbstractHttpField> getMapHttpFields() { 50 return fields; 51 } 52 53 /** 54 * @return the HTML header or null if set through definition 55 */ 56 public abstract String getHeader(); 57 58 /** 59 * @return the HTML Footer or null if set through definition 60 */ 61 public abstract String getFooter(); 62 63 /** 64 * @return True if the HTML output will be a Form 65 */ 66 public abstract boolean isForm(); 67 68 /** 69 * @return the HTML Begin of Form (including URI) or null if set through 70 * definition 71 */ 72 public abstract String getBeginForm(); 73 74 /** 75 * @return the HTML End of Form or null if set through definition 76 */ 77 public abstract String getEndForm(); 78 79 /** 80 * @param field 81 * 82 * @return the HTML field form or null if set standard 83 */ 84 public abstract String getFieldForm(AbstractHttpField field); 85 86 /** 87 * @return the HTML Next Field in Form or null if set through definition 88 */ 89 public abstract String getNextFieldInForm(); 90 91 /** 92 * Called if fieldtovalidate is true 93 * 94 * @param field 95 * 96 * @return True if the field is valid 97 */ 98 public abstract boolean isFieldValid(AbstractHttpField field); 99 100 /** 101 * Note that mandatory fields is tested outside of the 102 * AbstractHttpBusinessRequest 103 * 104 * @return True if according to known informations this request is valid 105 */ 106 public abstract boolean isRequestValid(); 107 108 /** 109 * @return the string that contains the ContentType in HTML format (as 110 * "text/html") 111 */ 112 public abstract String getContentType(); 113 114 /** 115 * Utility mainly used for PUT where the content is coming out of the 116 * decoder 117 * 118 * @return the main FileUpload as AbstractHttpField for the current request 119 */ 120 public abstract AbstractHttpField getMainFileUpload(); 121 122 /** 123 * Used at the end of the request to release the resources 124 */ 125 public final void cleanRequest() { 126 for (final AbstractHttpField field : fields.values()) { 127 field.clean(); 128 } 129 fields.clear(); 130 } 131 }