Package railo.runtime.orm.hibernate

Source Code of railo.runtime.orm.hibernate.CommonUtil$SQLImpl

package railo.runtime.orm.hibernate;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.Serializable;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;

import org.hibernate.JDBCException;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;

import railo.commons.io.IOUtil;
import railo.commons.io.res.Resource;
import railo.commons.lang.types.RefBoolean;
import railo.loader.engine.CFMLEngineFactory;
import railo.runtime.Component;
import railo.runtime.ComponentPro;
import railo.runtime.MappingImpl;
import railo.runtime.PageContext;
import railo.runtime.PageContextImpl;
import railo.runtime.component.Property;
import railo.runtime.component.PropertyImpl;
import railo.runtime.config.Config;
import railo.runtime.config.ConfigWebImpl;
import railo.runtime.db.DataSource;
import railo.runtime.db.DatasourceConnection;
import railo.runtime.db.SQL;
import railo.runtime.db.SQLItem;
import railo.runtime.db.SQLItemImpl;
import railo.runtime.engine.ThreadLocalPageContext;
import railo.runtime.exp.PageException;
import railo.runtime.op.Caster;
import railo.runtime.op.Operator;
import railo.runtime.text.xml.XMLUtil;
import railo.runtime.type.Array;
import railo.runtime.type.Collection;
import railo.runtime.type.Collection.Key;
import railo.runtime.type.Query;
import railo.runtime.type.QueryImpl;
import railo.runtime.type.Struct;
import railo.runtime.type.cfc.ComponentAccess;
import railo.runtime.type.dt.DateTime;
import railo.runtime.type.scope.Argument;
import railo.runtime.type.util.ListUtil;
import railo.runtime.util.Cast;
import railo.runtime.util.Creation;
import railo.runtime.util.Decision;

public class CommonUtil {
 
  public static final Key ENTITY_NAME = CommonUtil.createKey("entityname");
  public static final Key FIELDTYPE = CommonUtil.createKey("fieldtype");
  public static final Key POST_INSERT=CommonUtil.createKey("postInsert");
  public static final Key POST_UPDATE=CommonUtil.createKey("postUpdate");
  public static final Key PRE_DELETE=CommonUtil.createKey("preDelete");
  public static final Key POST_DELETE=CommonUtil.createKey("postDelete");
  public static final Key PRE_LOAD=CommonUtil.createKey("preLoad");
  public static final Key POST_LOAD=CommonUtil.createKey("postLoad");
  public static final Key PRE_UPDATE=CommonUtil.createKey("preUpdate");
  public static final Key PRE_INSERT=CommonUtil.createKey("preInsert");
  public static final Key INIT=CommonUtil.createKey("init");
  private static final short INSPECT_UNDEFINED = (short)4; /*ConfigImpl.INSPECT_UNDEFINED*/
 
  public static final Charset UTF8;
 
  static {
    UTF8=Charset.forName("utf-8");
  }

 
  private static Cast caster;
  private static Decision decision;
  private static Creation creator;


  public static Object castTo(PageContext pc, Class trgClass, Object obj) throws PageException {
    return Caster.castTo(pc, trgClass, obj);
  }
 
  public static Array toArray(Object obj) throws PageException {
    return caster().toArray(obj);
  }
  public static Array toArray(Object obj, Array defaultValue) {
    return caster().toArray(obj,defaultValue);
  }

  public static Boolean toBoolean(String str) throws PageException {
    return caster().toBoolean(str);
  }
  public static Boolean toBoolean(String str, Boolean defaultValue) {
    return caster().toBoolean(str,defaultValue);
  }
  public static Boolean toBoolean(Object obj) throws PageException {
    return caster().toBoolean(obj);
  }
  public static Boolean toBoolean(Object obj, Boolean defaultValue) {
    return caster().toBoolean(obj,defaultValue);
  }

  public static Boolean toBooleanValue(String str) throws PageException {
    return caster().toBooleanValue(str);
  }
  public static Boolean toBooleanValue(String str, Boolean defaultValue) {
    return caster().toBooleanValue(str,defaultValue);
  }
  public static boolean toBooleanValue(Object obj) throws PageException {
    return caster().toBooleanValue(obj);
  }
  public static boolean toBooleanValue(Object obj, boolean defaultValue) {
    return caster().toBooleanValue(obj,defaultValue);
  }

  public static Component toComponent(Object obj) throws PageException {
    return Caster.toComponent(obj);
  }
  public static Component toComponent(Object obj, Component defaultValue) {
    return Caster.toComponent(obj,defaultValue);
  }

  public static Object toList(String[] arr, String delimiter) {
    return ListUtil.arrayToList(arr, delimiter);
  }
 
  public static String toString(Object obj, String defaultValue) {
    return caster().toString(obj,defaultValue);
  }
  public static String toString(Object obj) throws PageException {
    return caster().toString(obj);
  }
  public static String toString(boolean b) {
    return caster().toString(b);
  }
  public static String toString(double d) {
    return caster().toString(d);
  }
  public static String toString(int i) {
    return caster().toString(i);
  }
  public static String toString(long l) {
    return caster().toString(l);
  }
  public static String toString(Resource file, Charset charset) throws IOException {
    return IOUtil.toString(file, charset);
  }

  public static String[] toStringArray(String list, char delimiter) {
    return ListUtil.listToStringArray(list, delimiter);
  }
  public static String[] toStringArray(String list, String delimiter) {
    return ListUtil.toStringArray(ListUtil.listToArray(list,delimiter),""); //TODO better
  }
 
  public static Integer toInteger(Object obj) throws PageException {
    return caster().toInteger(obj);
  }
  public static Integer toInteger(Object obj, Integer defaultValue) {
    return caster().toInteger(obj, defaultValue);
  }
  public static int toIntValue(Object obj) throws PageException {
    return caster().toIntValue(obj);
  }
  public static int toIntValue(Object obj, int defaultValue) {
    return caster().toIntValue(obj,defaultValue);
  }
 
  public static Array toArray(Argument arg) {
    Array trg=createArray();
    int[] keys = arg.intKeys();
    for(int i=0;i<keys.length;i++){
      trg.setEL(keys[i],
          arg.get(keys[i],null));
    }
    return trg;
  }
 
  public static PageException toPageException(Throwable t) {
    if (!(t instanceof JDBCException))
      return caster().toPageException(t);
   
   
    JDBCException j = (JDBCException)t;
    String message = j.getMessage();
    Throwable cause = j.getCause();
    if(cause != null) {
      message += " [" + cause.getMessage() + "]";
    }
    return CFMLEngineFactory.getInstance().getExceptionUtil().createDatabaseException(message, new SQLImpl(j.getSQL()));
   
  }
  public static Serializable toSerializable(Object obj) throws PageException {
    return caster().toSerializable(obj);
  }
  public static Serializable toSerializable(Object obj,Serializable defaultValue) {
    return caster().toSerializable(obj,defaultValue);
  }

  public static Struct toStruct(Object obj) throws PageException {
    return caster().toStruct(obj);
  }
  public static Struct toStruct(Object obj, Struct defaultValue) {
    return caster().toStruct(obj,defaultValue);
  }

  public static SQLItem toSQLItem(Object value, int type) {
    return new SQLItemImpl(value,type);
  }
 
  public static Object[] toNativeArray(Object obj) throws PageException {
    return Caster.toNativeArray(obj);
  }
 
  public static String toTypeName(Object obj) {
    return caster().toTypeName(obj);
  }
  public static Node toXML(Object obj) throws PageException {
    return caster().toXML(obj);
  }
  public static Node toXML(Object obj, Node defaultValue) {
    return caster().toXML(obj,defaultValue);
  }
 

  public static Document toDocument(Resource res) throws IOException, SAXException {
    return XMLUtil.parse(XMLUtil.toInputSource(res), null, false);
  }
 
 
 

  public static boolean isArray(Object obj) {
    return decision().isArray(obj);
  }
 
  public static boolean isStruct(Object obj) {
    return decision().isStruct(obj);
  }
 
  public static Array createArray(){
    return creator().createArray();
  }

  public static DateTime createDateTime(long time) {
    return creator().createDateTime(time);
  }

  public static Property createProperty(String name, String type) {
    PropertyImpl pi = new PropertyImpl();
    pi.setName(name);
    pi.setType(type);
    return pi;
  }
 
  public static Struct createStruct(){
    return creator().createStruct();
  }
  public static Collection.Key createKey(String key){
    return creator().createKey(key);
  }
  public static Query createQuery(Collection.Key[] columns, int rows, String name) throws PageException{
    return creator().createQuery(columns, rows, name);
  }
  public static Query createQuery(Array names, Array types, int rows, String name) throws PageException{
    return new QueryImpl(names,types,rows,name);
  }

  public static RefBoolean createRefBoolean() {
    return new RefBooleanImpl();
  }
 
  public static Key[] keys(Collection coll) {
    if(coll==null) return new Key[0];
    Iterator<Key> it = coll.keyIterator();
    List<Key> rtn=new ArrayList<Key>();
    if(it!=null)while(it.hasNext()){
      rtn.add(it.next());
    }
    return rtn.toArray(new Key[rtn.size()]);
  }
 
 
 
  private static Creation creator() {
    if(creator==null)
      creator=CFMLEngineFactory.getInstance().getCreationUtil();
    return creator;
  }

  private static Decision decision() {
    if(decision==null)
      decision=CFMLEngineFactory.getInstance().getDecisionUtil();
    return decision;
  }
  private static Cast caster() {
    if(caster==null)
      caster=CFMLEngineFactory.getInstance().getCastUtil();
    return caster;
  }
 

  /**
   * represents a SQL Statement with his defined arguments for a prepared statement
   */
  static class SQLImpl implements SQL {
     
      private String strSQL;
     
      /**
       * Constructor only with SQL String
       * @param strSQL SQL String
       */
      public SQLImpl(String strSQL) {
          this.strSQL=strSQL;
      }
     
     
      public void addItems(SQLItem item) {
       
      }
     
      @Override
      public SQLItem[] getItems() {
          return new SQLItem[0];
      }

      @Override
      public int getPosition() {
          return 0;
      }
     
      @Override
      public void setPosition(int position) {
      }   
     

      @Override
      public String getSQLString() {
          return strSQL;
      }
     
      @Override
      public void setSQLString(String strSQL) {
          this.strSQL= strSQL;
      }

      @Override
      public String toString() {
          return strSQL;
      }   
     
      @Override
      public String toHashString() {
          return strSQL;
      }
  }
 
  /**
   * Integer Type that can be modified
   */
  public static final class RefBooleanImpl implements RefBoolean {//MUST add interface Castable

      private boolean value;


      public RefBooleanImpl() {}
     
      /**
       * @param value
       */
      public RefBooleanImpl(boolean value) {
          this.value=value;
      }
     
      /**
       * @param value
       */
      public void setValue(boolean value) {
          this.value = value;
      }
     
      /**
       * @return returns value as Boolean Object
       */
      public Boolean toBoolean() {
          return value?Boolean.TRUE:Boolean.FALSE;
      }
     
      /**
       * @return returns value as boolean value
       */
      public boolean toBooleanValue() {
          return value;
      }
     
      @Override
      public String toString() {
          return value?"true":"false";
      }
  }

  public static DataSource getDataSource(PageContext pc, String name) throws PageException {
    return ((PageContextImpl)pc).getDataSource(name); // TODO use reflection
  }

  public static DatasourceConnection getDatasourceConnection(PageContext pc, DataSource ds) throws PageException {
    return ((ConfigWebImpl)pc.getConfig()).getDatasourceConnectionPool().getDatasourceConnection(pc,ds,null,null); // TODO use reflection
  }
 
  public static void releaseDatasourceConnection(PageContext pc, DatasourceConnection dc) {
    ((ConfigWebImpl)pc.getConfig()).getDatasourceConnectionPool().releaseDatasourceConnection(dc); // TODO use reflection
  }

  public static MappingImpl createMapping(Config config, String virtual, String physical) {
    return new MappingImpl(config,
        virtual,
        physical,
        null,INSPECT_UNDEFINED,true,false,false,false,true,true,null
        );
  }
 
  public static String last(String list, char delimiter) {
    return ListUtil.last(list, delimiter);
  }
 
  public static String last(String list, String delimiter) {
    return ListUtil.last(list, delimiter,true);
  }
 
  public static int listFindNoCaseIgnoreEmpty(String list, String value, char delimiter) {
    return ListUtil.listFindNoCaseIgnoreEmpty(list,value,delimiter);
  }
 
  public static String[] trimItems(String[] arr) {
    for(int i=0;i<arr.length;i++) {
      arr[i]=arr[i].trim();
    }
    return arr;
  }
 
  public static Document getDocument(Node node) {
    return XMLUtil.getDocument(node);
  }
  public static Document newDocument() throws ParserConfigurationException, FactoryConfigurationError {
    return XMLUtil.newDocument();
  }
  public static void setFirst(Node parent, Node node) {
    XMLUtil.setFirst(parent, node);
  }

  public static Property[] getProperties(Component c,boolean onlyPeristent, boolean includeBaseProperties, boolean preferBaseProperties, boolean inheritedMappedSuperClassOnly) {
    if(c instanceof ComponentPro)
      return ((ComponentPro)c).getProperties(onlyPeristent, includeBaseProperties,preferBaseProperties,preferBaseProperties);
    return c.getProperties(onlyPeristent);
  }
 
  public static void write(Resource res, String string, Charset charset, boolean append) throws IOException {
    IOUtil.write(res, string, charset, append);
  }

  public static BufferedReader toBufferedReader(Resource res, Charset charset) throws IOException {
    return IOUtil.toBufferedReader(IOUtil.getReader(res,(Charset)null));
  }
 
  public static boolean equalsComplexEL(Object left, Object right) {
    return Operator.equalsComplexEL(left, right, false,true);
  }

  public static void setEntity(Component c, boolean entity) {
    ((ComponentAccess)c).setEntity(entity);
  }

  public static PageContext pc() {
    //return CFMLEngineFactory.getInstance().getThreadPageContext();
    return ThreadLocalPageContext.get();
  }

  public static Config config() {
    //return CFMLEngineFactory.getInstance().getThreadPageContext().getConfig();
    return ThreadLocalPageContext.getConfig();
  }
}
TOP

Related Classes of railo.runtime.orm.hibernate.CommonUtil$SQLImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.