001 /** 002 * 003 */ 004 package railo.runtime.type.scope; 005 006 import java.io.UnsupportedEncodingException; 007 import java.util.Iterator; 008 009 import javax.servlet.ServletInputStream; 010 011 import org.apache.commons.fileupload.disk.DiskFileItem; 012 013 import railo.runtime.PageContext; 014 import railo.runtime.dump.DumpData; 015 import railo.runtime.dump.DumpProperties; 016 import railo.runtime.exp.PageException; 017 import railo.runtime.listener.ApplicationContext; 018 import railo.runtime.op.Duplicator; 019 import railo.runtime.type.Collection; 020 import railo.runtime.type.dt.DateTime; 021 import railo.runtime.type.util.StructSupport; 022 023 /** 024 * 025 */ 026 public final class UrlFormImpl extends StructSupport implements URLForm { 027 028 private static final long serialVersionUID = -5709431392572723178L; 029 030 private FormImpl form; 031 private URLImpl url; 032 private boolean isInit; 033 034 public UrlFormImpl(FormImpl form, URLImpl url) { 035 this.form=form; 036 this.url=url; 037 } 038 039 @Override 040 public void initialize(PageContext pc) { 041 if(isInit) return; 042 isInit=true; 043 form.initialize(pc); 044 url.initialize(pc); 045 //print.ln(">>>"+List.arrayToList(url.keys(),",")); 046 form.addRaw(pc.getApplicationContext(),url.getRaw()); 047 048 /*String[] keys = url.keys(); 049 for(int i=0;i<keys.length;i++) { 050 form.setEL(keys[i], url.get(keys[i],null)); 051 }*/ 052 } 053 054 @Override 055 public void release() { 056 isInit=false; 057 form.release(); 058 url.release(); 059 } 060 061 @Override 062 public void release(PageContext pc) { 063 isInit=false; 064 form.release(pc); 065 url.release(pc); 066 } 067 068 @Override 069 public String getEncoding() { 070 return form.getEncoding(); 071 } 072 073 @Override 074 public void setEncoding(ApplicationContext ac, String encoding)throws UnsupportedEncodingException { 075 form.setEncoding(ac,encoding); 076 } 077 078 @Override 079 public int getType() { 080 return form.getType(); 081 } 082 083 @Override 084 public String getTypeAsString() { 085 return form.getTypeAsString(); 086 } 087 088 @Override 089 public boolean isInitalized() { 090 return isInit; 091 } 092 093 @Override 094 public void clear() { 095 form.clear(); 096 url.clear(); 097 } 098 099 @Override 100 public boolean containsKey(Collection.Key key) { 101 return form.containsKey(key); 102 } 103 104 @Override 105 public Object get(Collection.Key key) throws PageException { 106 return form.get(key); 107 } 108 109 @Override 110 public Object get(Collection.Key key, Object defaultValue) { 111 return form.get(key, defaultValue); 112 } 113 114 @Override 115 public Iterator<Collection.Key> keyIterator() { 116 return form.keyIterator(); 117 } 118 119 @Override 120 public Iterator<String> keysAsStringIterator() { 121 return form.keysAsStringIterator(); 122 } 123 124 @Override 125 public Iterator<Entry<Key, Object>> entryIterator() { 126 return form.entryIterator(); 127 } 128 129 @Override 130 public Iterator<Object> valueIterator() { 131 return form.valueIterator(); 132 } 133 134 @Override 135 public Collection.Key[] keys() { 136 return form.keys(); 137 } 138 139 @Override 140 public Object remove(Collection.Key key) throws PageException { 141 return form.remove(key); 142 } 143 144 @Override 145 public Object removeEL(Collection.Key key) { 146 return form.removeEL(key); 147 } 148 149 @Override 150 public Object set(Collection.Key key, Object value) throws PageException { 151 return form.set(key, value); 152 } 153 154 @Override 155 public Object setEL(Collection.Key key, Object value) { 156 return form.setEL(key, value); 157 } 158 159 @Override 160 public int size() { 161 return form.size(); 162 } 163 164 @Override 165 public DumpData toDumpData(PageContext pageContext, int maxlevel, DumpProperties dp) { 166 return form.toDumpData(pageContext, maxlevel,dp); 167 } 168 169 @Override 170 public boolean castToBooleanValue() throws PageException { 171 return form.castToBooleanValue(); 172 } 173 174 @Override 175 public Boolean castToBoolean(Boolean defaultValue) { 176 return form.castToBoolean(defaultValue); 177 } 178 179 @Override 180 public DateTime castToDateTime() throws PageException { 181 return form.castToDateTime(); 182 } 183 184 @Override 185 public DateTime castToDateTime(DateTime defaultValue) { 186 return form.castToDateTime(defaultValue); 187 } 188 189 @Override 190 public double castToDoubleValue() throws PageException { 191 return form.castToDoubleValue(); 192 } 193 194 @Override 195 public double castToDoubleValue(double defaultValue) { 196 return form.castToDoubleValue(defaultValue); 197 } 198 199 @Override 200 public String castToString() throws PageException { 201 return form.castToString(); 202 } 203 204 @Override 205 public String castToString(String defaultValue) { 206 return form.castToString(defaultValue); 207 } 208 209 210 @Override 211 public int compareTo(boolean b) throws PageException { 212 return form.compareTo(b); 213 } 214 215 @Override 216 public int compareTo(DateTime dt) throws PageException { 217 return form.compareTo(dt); 218 } 219 220 @Override 221 public int compareTo(double d) throws PageException { 222 return form.compareTo(d); 223 } 224 225 @Override 226 public int compareTo(String str) throws PageException { 227 return form.compareTo(str); 228 } 229 230 public DiskFileItem getFileUpload(String key) { 231 return form.getFileUpload(key); 232 } 233 234 @Override 235 public PageException getInitException() { 236 return form.getInitException(); 237 } 238 239 @Override 240 public Collection duplicate(boolean deepCopy) { 241 return (Collection) Duplicator.duplicate(form,deepCopy); 242 } 243 244 @Override 245 public void setScriptProtecting(ApplicationContext ac,boolean b) { 246 form.setScriptProtecting(ac,b); 247 } 248 249 @Override 250 public boolean containsValue(Object value) { 251 return form.containsValue(value); 252 } 253 254 @Override 255 public java.util.Collection<Object> values() { 256 return form.values(); 257 } 258 259 public FormItem getUploadResource(String key) { 260 return form.getUploadResource(key); 261 } 262 263 public FormItem[] getFileItems() { 264 return form.getFileItems(); 265 } 266 267 public ServletInputStream getInputStream() { 268 return form.getInputStream(); 269 } 270 }