001    package railo.runtime.services;
002    
003    
004    import java.util.Map;
005    
006    import railo.runtime.db.DataSource;
007    import railo.runtime.op.Caster;
008    import railo.runtime.type.Struct;
009    import railo.runtime.type.StructImpl;
010    import coldfusion.sql.DataSourceDef;
011    
012    public class DatSourceDefImpl implements DataSourceDef {
013    
014            private DataSource ds;
015    
016            public DatSourceDefImpl(DataSource ds) {
017                    this.ds=ds;
018            }
019    
020            public Object get(Object arg1) {
021                    // TODO Auto-generated method stub
022                    return null;
023            }
024    
025            public Struct getAllowedSQL() {
026                    Struct allow=new StructImpl();
027                    allow.setEL("alter", Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_ALTER)));
028                    allow.setEL("create", Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_CREATE)));
029                    allow.setEL("delete", Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_DELETE)));
030                    allow.setEL("drop", Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_DROP)));
031                    allow.setEL("grant", Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_GRANT)));
032                    allow.setEL("insert", Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_INSERT)));
033                    allow.setEL("revoke", Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_REVOKE)));
034                    allow.setEL("select", Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_SELECT)));
035                    allow.setEL("storedproc", Caster.toBoolean(true));// TODO
036                    allow.setEL("update", Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_UPDATE)));
037                    return allow;
038            }
039    
040            /**
041             * @see coldfusion.sql.DataSourceDef#getClassName()
042             */
043            public String getClassName() {
044                    return ds.getClazz().getName();
045            }
046    
047            /**
048             * @see coldfusion.sql.DataSourceDef#getDatabase()
049             */
050            public String getDatabase() {
051                    return ds.getDatabase();
052            }
053    
054            /**
055             * @see coldfusion.sql.DataSourceDef#getDesc()
056             */
057            public String getDesc() {
058                    return "";
059            }
060    
061            public String getDriver() {
062                    return "";
063            }
064    
065            public String getDsn() {
066                    return ds.getDsnTranslated();
067            }
068    
069            public Struct getExtraData() {
070                    Struct rtn=new StructImpl();
071                    Struct connprop=new StructImpl();
072                    String[] names = ds.getCustomNames();
073                    rtn.setEL("connectionprops", connprop);
074                    for(int i=0;i<names.length;i++) {
075                            connprop.setEL(names[i], ds.getCustomValue(names[i]));
076                    }
077                    rtn.setEL("maxpooledstatements",new Double(1000) );
078                    rtn.setEL("sid","");
079                    rtn.setEL("timestampasstring", Boolean.FALSE);
080                    rtn.setEL("useTrustedConnection", Boolean.FALSE);
081                    rtn.setEL("datasource",ds.getName() );
082                    rtn.setEL("_port",new Double(ds.getPort()) );
083                    rtn.setEL("port",new Double(ds.getPort()) );
084                    rtn.setEL("_logintimeout",new Double(30) );
085                    rtn.setEL("args", "");
086                    rtn.setEL("databaseFile", "");
087                    rtn.setEL("defaultpassword","" );
088                    rtn.setEL("defaultusername", "");
089                    rtn.setEL("host",ds.getHost() );
090                    rtn.setEL("maxBufferSize",new Double(0) );
091                    rtn.setEL("pagetimeout",new Double(0) );
092                    rtn.setEL("selectMethod","direct" );
093                    rtn.setEL("sendStringParamterAsUnicode",Boolean.TRUE );
094                    rtn.setEL("systemDatabaseFile", "");
095                    
096                    
097                    return rtn;
098            }
099    
100            /**
101             *
102             * @see coldfusion.sql.DataSourceDef#getHost()
103             */
104            public String getHost() {
105                    return ds.getHost();
106            }
107    
108            public String getIfxSrv() {
109                    return "";
110            }
111    
112            public int getInterval() {
113                    return 0;
114            }
115    
116            public String getJNDIName() {
117                    return "";
118            }
119    
120            /**
121             * @see coldfusion.sql.DataSourceDef#getJndiName()
122             */
123            public String getJndiName() {
124                    return getJNDIName();
125            }
126    
127            public Struct getJndienv() {
128                    return new StructImpl();
129            }
130    
131            public int getLoginTimeout() {
132                    return ds.getConnectionTimeout();
133            }
134    
135            /**
136             * @see coldfusion.sql.DataSourceDef#getLogintimeout()
137             */
138            public int getLogintimeout() {
139                    return getLoginTimeout();
140            }
141    
142            public int getMaxBlobSize() {
143                    return 64000;
144            }
145    
146            public int getMaxClobSize() {
147                    return 64000;
148            }
149    
150            public int getMaxConnections() {
151                    return ds.getConnectionLimit();
152            }
153    
154            public int getMaxPooledStatements() {
155                    return 0;
156            }
157    
158            public int getMaxconnections() {
159                    return getMaxConnections();
160            }
161    
162            /**
163             * @see coldfusion.sql.DataSourceDef#getPort()
164             */
165            public int getPort() {
166                    return ds.getPort();
167            }
168    
169            public String getSelectMethod() {
170                    return "";
171            }
172    
173            public String getSid() {
174                    return "";
175            }
176    
177            public boolean getStrPrmUni() {
178                    return false;
179            }
180    
181            public int getTimeout() {
182                    return ds.getConnectionTimeout();
183            }
184    
185            public int getType() {
186                    return 0;
187            }
188    
189            /**
190             * @see coldfusion.sql.DataSourceDef#getUrl()
191             */
192            public String getUrl() {
193                    return ds.getDsnTranslated();
194            }
195    
196            /**
197             *
198             * @see coldfusion.sql.DataSourceDef#getUsername()
199             */
200            public String getUsername() {
201                    return ds.getUsername();
202            }
203    
204            /**
205             *
206             * @see coldfusion.sql.DataSourceDef#getVendor()
207             */
208            public String getVendor() {
209                    return "";
210            }
211    
212            /**
213             *
214             * @see coldfusion.sql.DataSourceDef#isBlobEnabled()
215             */
216            public boolean isBlobEnabled() {
217                    return ds.isBlob();
218            }
219    
220            /**
221             * @see coldfusion.sql.DataSourceDef#isClobEnabled()
222             */
223            public boolean isClobEnabled() {
224                    return ds.isClob();
225            }
226    
227            public boolean isConnectionEnabled() {
228                    return true;
229            }
230    
231            public boolean isDynamic() {
232                    return false;
233            }
234    
235            public boolean isPooling() {
236                    return true;
237            }
238    
239            public boolean isRemoveOnPageEnd() {
240                    return false;
241            }
242    
243            public boolean isSQLRestricted() {
244                    return false;
245            }
246    
247            public void setAllowedSQL(Struct arg1) {
248                    // TODO Auto-generated method stub
249    
250            }
251    
252            public void setBlobEnabled(boolean arg1) {
253                    // TODO Auto-generated method stub
254    
255            }
256    
257            public void setClassName(String arg1) {
258                    // TODO Auto-generated method stub
259    
260            }
261    
262            public void setClobEnabled(boolean arg1) {
263                    // TODO Auto-generated method stub
264    
265            }
266    
267            public void setConnectionEnabled(boolean arg1) {
268                    // TODO Auto-generated method stub
269    
270            }
271    
272            public void setDatabase(String arg1) {
273                    // TODO Auto-generated method stub
274    
275            }
276    
277            public void setDesc(String arg1) {
278                    // TODO Auto-generated method stub
279    
280            }
281    
282            public void setDriver(String arg1) {
283                    // TODO Auto-generated method stub
284    
285            }
286    
287            public void setDsn(String arg1) {
288                    // TODO Auto-generated method stub
289    
290            }
291    
292            public void setDynamic(boolean arg1) {
293                    // TODO Auto-generated method stub
294    
295            }
296    
297            public void setExtraData(Struct arg1) {
298                    // TODO Auto-generated method stub
299    
300            }
301    
302            public void setHost(String arg1) {
303                    // TODO Auto-generated method stub
304    
305            }
306    
307            public void setIfxSrv(String arg1) {
308                    // TODO Auto-generated method stub
309    
310            }
311    
312            public void setInterval(int arg1) {
313                    // TODO Auto-generated method stub
314    
315            }
316    
317            public void setJNDIName(String arg1) {
318                    // TODO Auto-generated method stub
319    
320            }
321    
322            public void setJndiName(String arg1) {
323                    // TODO Auto-generated method stub
324    
325            }
326    
327            public void setJndienv(Struct arg1) {
328                    // TODO Auto-generated method stub
329    
330            }
331    
332            public void setLoginTimeout(Object arg1) {
333                    // TODO Auto-generated method stub
334    
335            }
336    
337            public void setLogintimeout(int arg1) {
338                    // TODO Auto-generated method stub
339    
340            }
341    
342            public void setMap(Map arg1) {
343                    // TODO Auto-generated method stub
344    
345            }
346    
347            public void setMaxBlobSize(int arg1) {
348                    // TODO Auto-generated method stub
349    
350            }
351    
352            public void setMaxClobSize(int arg1) {
353                    // TODO Auto-generated method stub
354    
355            }
356    
357            public void setMaxConnections(int arg1) {
358                    // TODO Auto-generated method stub
359    
360            }
361    
362            public void setMaxConnections(Object arg1) {
363                    // TODO Auto-generated method stub
364    
365            }
366    
367            public void setMaxPooledStatements(int arg1) {
368                    // TODO Auto-generated method stub
369    
370            }
371    
372            public void setPassword(String arg1) {
373                    // TODO Auto-generated method stub
374    
375            }
376    
377            public void setPooling(boolean arg1) {
378                    // TODO Auto-generated method stub
379    
380            }
381    
382            public void setPort(int arg1) {
383                    // TODO Auto-generated method stub
384    
385            }
386    
387            public void setPort(Object arg1) {
388                    // TODO Auto-generated method stub
389    
390            }
391    
392            public void setRemoveOnPageEnd(boolean arg1) {
393                    // TODO Auto-generated method stub
394    
395            }
396    
397            public void setSelectMethod(String arg1) {
398                    // TODO Auto-generated method stub
399    
400            }
401    
402            public void setSid(String arg1) {
403                    // TODO Auto-generated method stub
404    
405            }
406    
407            public void setStrPrmUni(boolean arg1) {
408                    // TODO Auto-generated method stub
409    
410            }
411    
412            public void setStrPrmUni(String arg1) {
413                    // TODO Auto-generated method stub
414    
415            }
416    
417            public void setTimeout(int arg1) {
418                    // TODO Auto-generated method stub
419    
420            }
421    
422            public void setType(String arg1) {
423                    // TODO Auto-generated method stub
424    
425            }
426    
427            public void setType(int arg1) {
428                    // TODO Auto-generated method stub
429    
430            }
431    
432            public void setUrl(String arg1) {
433                    // TODO Auto-generated method stub
434    
435            }
436    
437            public void setUsername(String arg1) {
438                    // TODO Auto-generated method stub
439    
440            }
441    
442            public void setVendor(String arg1) {
443                    // TODO Auto-generated method stub
444    
445            }
446    
447    }