/**
* Copyright (c) 2014, the Railo Company Ltd.
* Copyright (c) 2015, Lucee Assosication Switzerland
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
package lucee.runtime.services;
import java.util.Map;
import lucee.runtime.db.ClassDefinition;
import lucee.runtime.db.DataSource;
import lucee.runtime.op.Caster;
import lucee.runtime.type.Struct;
import lucee.runtime.type.StructImpl;
import lucee.runtime.type.util.KeyConstants;
import coldfusion.sql.DataSourceDef;
public class DatSourceDefImpl implements DataSourceDef {
private final DataSource ds;
public DatSourceDefImpl(DataSource ds) {
this.ds=ds;
}
@Override
public Object get(Object arg1) {
// TODO Auto-generated method stub
return null;
}
@Override
public Struct getAllowedSQL() {
Struct allow=new StructImpl();
allow.setEL(KeyConstants._alter, Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_ALTER)));
allow.setEL(KeyConstants._create, Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_CREATE)));
allow.setEL(KeyConstants._delete, Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_DELETE)));
allow.setEL(KeyConstants._drop, Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_DROP)));
allow.setEL(KeyConstants._grant, Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_GRANT)));
allow.setEL(KeyConstants._insert, Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_INSERT)));
allow.setEL(KeyConstants._revoke, Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_REVOKE)));
allow.setEL(KeyConstants._select, Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_SELECT)));
allow.setEL("storedproc", Caster.toBoolean(true));// TODO
allow.setEL(KeyConstants._update, Caster.toBoolean(ds.hasAllow(DataSource.ALLOW_UPDATE)));
return allow;
}
@Override
public ClassDefinition getClassDefinition() {
return ds.getClassDefinition();
}
@Override
public String getDatabase() {
return ds.getDatabase();
}
@Override
public String getDesc() {
return "";
}
@Override
public String getDriver() {
return "";
}
@Override
public String getDsn() {
return ds.getDsnTranslated();
}
@Override
public Struct getExtraData() {
Struct rtn=new StructImpl();
Struct connprop=new StructImpl();
String[] names = ds.getCustomNames();
rtn.setEL("connectionprops", connprop);
for(int i=0;i<names.length;i++) {
connprop.setEL(names[i], ds.getCustomValue(names[i]));
}
rtn.setEL("maxpooledstatements",new Double(1000) );
rtn.setEL("sid","");
rtn.setEL("timestampasstring", Boolean.FALSE);
rtn.setEL("useTrustedConnection", Boolean.FALSE);
rtn.setEL("datasource",ds.getName() );
rtn.setEL("_port",new Double(ds.getPort()) );
rtn.setEL("port",new Double(ds.getPort()) );
rtn.setEL("_logintimeout",new Double(30) );
rtn.setEL("args", "");
rtn.setEL("databaseFile", "");
rtn.setEL("defaultpassword","" );
rtn.setEL("defaultusername", "");
rtn.setEL("host",ds.getHost() );
rtn.setEL("maxBufferSize",new Double(0) );
rtn.setEL("pagetimeout",new Double(0) );
rtn.setEL("selectMethod","direct" );
rtn.setEL("sendStringParamterAsUnicode",Boolean.TRUE );
rtn.setEL("systemDatabaseFile", "");
return rtn;
}
@Override
public String getHost() {
return ds.getHost();
}
@Override
public String getIfxSrv() {
return "";
}
@Override
public int getInterval() {
return 0;
}
@Override
public String getJNDIName() {
return "";
}
@Override
public String getJndiName() {
return getJNDIName();
}
@Override
public Struct getJndienv() {
return new StructImpl();
}
@Override
public int getLoginTimeout() {
return ds.getConnectionTimeout();
}
@Override
public int getLogintimeout() {
return getLoginTimeout();
}
@Override
public int getMaxBlobSize() {
return 64000;
}
@Override
public int getMaxClobSize() {
return 64000;
}
@Override
public int getMaxConnections() {
return ds.getConnectionLimit();
}
@Override
public int getMaxPooledStatements() {
return 0;
}
@Override
public int getMaxconnections() {
return getMaxConnections();
}
@Override
public int getPort() {
return ds.getPort();
}
@Override
public String getSelectMethod() {
return "";
}
@Override
public String getSid() {
return "";
}
@Override
public boolean getStrPrmUni() {
return false;
}
@Override
public int getTimeout() {
return ds.getConnectionTimeout();
}
@Override
public int getType() {
return 0;
}
@Override
public String getUrl() {
return ds.getDsnTranslated();
}
@Override
public String getUsername() {
return ds.getUsername();
}
@Override
public String getVendor() {
return "";
}
@Override
public boolean isBlobEnabled() {
return ds.isBlob();
}
@Override
public boolean isClobEnabled() {
return ds.isClob();
}
@Override
public boolean isConnectionEnabled() {
return true;
}
@Override
public boolean isDynamic() {
return false;
}
@Override
public boolean isPooling() {
return true;
}
@Override
public boolean isRemoveOnPageEnd() {
return false;
}
@Override
public boolean isSQLRestricted() {
return false;
}
@Override
public void setAllowedSQL(Struct arg1) {
// TODO Auto-generated method stub
}
@Override
public void setBlobEnabled(boolean arg1) {
// TODO Auto-generated method stub
}
@Override
public void setClobEnabled(boolean arg1) {
// TODO Auto-generated method stub
}
@Override
public void setConnectionEnabled(boolean arg1) {
// TODO Auto-generated method stub
}
@Override
public void setDatabase(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setDesc(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setDriver(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setDsn(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setDynamic(boolean arg1) {
// TODO Auto-generated method stub
}
@Override
public void setExtraData(Struct arg1) {
// TODO Auto-generated method stub
}
@Override
public void setHost(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setIfxSrv(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setInterval(int arg1) {
// TODO Auto-generated method stub
}
@Override
public void setJNDIName(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setJndiName(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setJndienv(Struct arg1) {
// TODO Auto-generated method stub
}
@Override
public void setLoginTimeout(Object arg1) {
// TODO Auto-generated method stub
}
@Override
public void setLogintimeout(int arg1) {
// TODO Auto-generated method stub
}
@Override
public void setMap(Map arg1) {
// TODO Auto-generated method stub
}
@Override
public void setMaxBlobSize(int arg1) {
// TODO Auto-generated method stub
}
@Override
public void setMaxClobSize(int arg1) {
// TODO Auto-generated method stub
}
@Override
public void setMaxConnections(int arg1) {
// TODO Auto-generated method stub
}
@Override
public void setMaxConnections(Object arg1) {
// TODO Auto-generated method stub
}
@Override
public void setMaxPooledStatements(int arg1) {
// TODO Auto-generated method stub
}
@Override
public void setPassword(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setPooling(boolean arg1) {
// TODO Auto-generated method stub
}
@Override
public void setPort(int arg1) {
// TODO Auto-generated method stub
}
@Override
public void setPort(Object arg1) {
// TODO Auto-generated method stub
}
@Override
public void setRemoveOnPageEnd(boolean arg1) {
// TODO Auto-generated method stub
}
@Override
public void setSelectMethod(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setSid(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setStrPrmUni(boolean arg1) {
// TODO Auto-generated method stub
}
@Override
public void setStrPrmUni(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setTimeout(int arg1) {
// TODO Auto-generated method stub
}
@Override
public void setType(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setType(int arg1) {
// TODO Auto-generated method stub
}
@Override
public void setUrl(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setUsername(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setVendor(String arg1) {
// TODO Auto-generated method stub
}
@Override
public void setClassDefinition(ClassDefinition cd) {
// TODO Auto-generated method stub
}
}