001 package railo.runtime.util; 002 003 import java.io.InputStream; 004 import java.io.Serializable; 005 006 import org.w3c.dom.Document; 007 008 import railo.commons.io.res.Resource; 009 import railo.runtime.config.RemoteClient; 010 import railo.runtime.db.DatasourceConnection; 011 import railo.runtime.db.SQL; 012 import railo.runtime.exp.PageException; 013 import railo.runtime.spooler.ExecutionPlan; 014 import railo.runtime.spooler.SpoolerTask; 015 import railo.runtime.type.Array; 016 import railo.runtime.type.Collection; 017 import railo.runtime.type.Collection.Key; 018 import railo.runtime.type.Query; 019 import railo.runtime.type.Struct; 020 import railo.runtime.type.dt.Date; 021 import railo.runtime.type.dt.DateTime; 022 import railo.runtime.type.dt.Time; 023 import railo.runtime.type.dt.TimeSpan; 024 import railo.runtime.type.scope.ClusterEntry; 025 026 /** 027 * Creation of different Objects 028 */ 029 public interface Creation { 030 031 /** 032 * creates and returns a array instance 033 * @return array 034 */ 035 public abstract Array createArray(); 036 037 038 /** 039 * creates and returns a array based on a string list 040 * @return array 041 */ 042 public abstract Array createArray(String list, String delimeter,boolean removeEmptyItem,boolean trim); 043 044 /** 045 * creates and returns a DateTime instance 046 * @param time 047 * @return DateTime 048 */ 049 public abstract DateTime createDateTime(long time); 050 051 /** 052 * creates and returns a DateTime instance 053 * @param year 054 * @param month 055 * @param day 056 * @param hour 057 * @param minute 058 * @param seond 059 * @param millis 060 * @return DateTime 061 */ 062 public abstract DateTime createDateTime(int year,int month,int day,int hour,int minute,int seond,int millis) throws PageException; 063 064 /** 065 * creates and returns a Date instance 066 * @param time 067 * @return DateTime 068 */ 069 public abstract Date createDate(long time); 070 071 /** 072 * creates and returns a Date instance 073 * @param year 074 * @param month 075 * @param day 076 * @return DateTime 077 */ 078 public abstract Date createDate(int year,int month,int day) throws PageException; 079 080 /** 081 * creates and returns a Time instance 082 * @param time 083 * @return DateTime 084 */ 085 public abstract Time createTime(long time); 086 087 /** 088 * creates and returns a Time instance 089 * @param hour 090 * @param minute 091 * @param second 092 * @param millis 093 * @return DateTime 094 */ 095 public abstract Time createTime(int hour,int minute,int second,int millis); 096 097 /** 098 * creates and returns a TimeSpan instance 099 * @param day 100 * @param hour 101 * @param minute 102 * @param second 103 * @return TimeSpan 104 */ 105 public abstract TimeSpan createTimeSpan(int day,int hour,int minute,int second); 106 107 /** 108 * creates and returns a array instance 109 * @param dimension 110 * @return array 111 * @throws PageException 112 */ 113 public abstract Array createArray(int dimension) throws PageException; 114 115 /** 116 * creates and returns a struct instance 117 * @return struct 118 */ 119 public abstract Struct createStruct(); 120 121 public abstract Struct createStruct(int type); 122 123 /** 124 * creates a query object with given data 125 * @param columns 126 * @param rows 127 * @param name 128 * @return created query Object 129 */ 130 public abstract Query createQuery(String[] columns, int rows, String name); 131 132 /** 133 * creates a query object with a resultset from a sql query 134 * @param dc Connection to a database 135 * @param name 136 * @param sql sql to execute 137 * @param maxrow maxrow for the resultset 138 * @throws PageException 139 * @deprecated replaced with <code>{@link #createQuery(DatasourceConnection, SQL, int, int, int, String)}</code> 140 */ 141 public abstract Query createQuery(DatasourceConnection dc,SQL sql,int maxrow, String name) throws PageException; 142 143 /** 144 * @param dc Connection to a database 145 * @param sql sql to execute 146 * @param maxrow maxrow for the resultset 147 * @param fetchsize 148 * @param timeout 149 * @param name 150 * @return created Query 151 * @throws PageException 152 */ 153 public abstract Query createQuery(DatasourceConnection dc,SQL sql,int maxrow, int fetchsize, int timeout,String name) throws PageException; 154 155 156 /** 157 * creates and returns a xml Document instance 158 * @return struct 159 * @throws PageException 160 */ 161 public abstract Document createDocument() throws PageException; 162 163 /** 164 * creates and returns a xml Document instance 165 * @param file 166 * @param isHtml 167 * @return struct 168 * @throws PageException 169 */ 170 public abstract Document createDocument(Resource file, boolean isHtml) throws PageException; 171 172 /** 173 * creates and returns a xml Document instance 174 * @param xml 175 * @param isHtml 176 * @return struct 177 * @throws PageException 178 */ 179 public abstract Document createDocument(String xml, boolean isHtml) throws PageException; 180 181 /** 182 * creates and returns a xml Document instance 183 * @param is 184 * @param isHtml 185 * @return struct 186 * @throws PageException 187 */ 188 public abstract Document createDocument(InputStream is, boolean isHtml) throws PageException; 189 190 /** 191 * creates a collecton Key out of a String 192 * @param key 193 */ 194 public abstract Collection.Key createKey(String key); 195 196 public SpoolerTask createRemoteClientTask(ExecutionPlan[] plans,RemoteClient remoteClient,Struct attrColl,String callerId, String type); 197 198 public ClusterEntry createClusterEntry(Key key,Serializable value, int offset); 199 200 201 public Resource createResource(String path, boolean existing) throws PageException; 202 203 204 205 }