Package com.adaptrex.core.ext.data

Examples of com.adaptrex.core.ext.data.Config


     *
     */
    @SuppressWarnings("unchecked")
    @Override
    public List<Object> getEntityList(AdaptrexSession session, Store store) {
  Config config = store.getConfig();
  List<Object> list = new ArrayList<Object>();

  EntityManager em = (EntityManager) session.getNativeSession();

  Map<String, Object> parameters = new HashMap<String, Object>(config.getParams());

  try {
      Class<?> clazz = config.getClazz();
      String className = clazz.getSimpleName();
      String alias = className.toLowerCase().substring(0, 1);

      /*
       * Core JPQL
       */
      String jpql = "SELECT " + alias + " FROM " + className + " " + alias;

      /*
       * Where
       */
      String where = "";
      if (config.getWhere() != null) {
    where += config.getWhere();
      }

      /*
       * Filter
       */
      for (Filter filter : config.getFilters()) {
    if (!where.isEmpty()) {
        where += " AND ";
    }

    String val = String.valueOf(filter.getValue());
    String prop = filter.getProperty();


    /*
     * Handle between inclusive
     */
    if (val.contains(">=<")) {
        String[] filterParts = val.split(">=<");

        where += "(" + alias + "." + filter.getProperty() + " BETWEEN :"
          + prop + "_low AND :" + prop + "_high)"
          + "";
        parameters.put(prop + "_low", filterParts[0]);
        parameters.put(prop + "_high", filterParts[1]);

        /*
         * Handle "OR"
         */
    } else if (String.valueOf(filter.getValue()).contains("||")) {
        String whereOr = "";
        int i = 1;

        for (String orPart : String.valueOf(filter.getValue()).split("\\|\\|")) {
      whereOr += whereOr.isEmpty() ? "(" : " OR ";
      whereOr += alias + "." + filter.getProperty() + " = :" + filter.getProperty() + i;
      parameters.put(filter.getProperty() + i, orPart);
      i++;
        }
        whereOr += ")";
        where += whereOr;

    } else {
        String eqType = String.valueOf(filter.getValue()).contains("%") ? " like " : " = ";
        if (eqType.contains("like")) {
      where += "lower(" + alias + "." + filter.getProperty() + ")" + eqType + ":" + filter.getProperty();
        } else {
      where += alias + "." + filter.getProperty() + eqType + ":" + filter.getProperty();
        }

        parameters.put(filter.getProperty(), filter.getValue());
    }
      }


      /*
       * Add where clause
       */
      if (!where.isEmpty()) {
    jpql += " WHERE " + where;
      }


      if (config.getSorters().size() > 0) {
    String sortClause = "";
    for (Sorter sorter : config.getSorters()) {
        if (!sortClause.isEmpty()) {
      sortClause += ",";
        }
        sortClause += alias + "." + sorter.getProperty() + " " + sorter.getDirection();
    }
    jpql += " ORDER BY " + sortClause;
      }

      log.debug("JPQL: " + jpql);
      Query q = em.createQuery(jpql, clazz);

      /*
       * Add params
       * TODO: This is tedius... we want to automatically determine the
       * type for the field we're trying to set the parameter for
       */
      for (String key : parameters.keySet()) {
    Object paramObj = parameters.get(key);

    Class<?> paramType = q.getParameter(key).getParameterType();
    String typeName = paramType.getSimpleName().toLowerCase();

    try {
        if (typeName.equals("boolean")) {
      String stringVal = (String) paramObj;
      paramObj = stringVal.equals("1") || stringVal.equals("true") || stringVal.equals("Y");

        } else if (typeName.equals("date")) {
      paramObj = dateFormat.parse((String) paramObj);

        } else {
      Method m = paramType.getDeclaredMethod("valueOf", String.class);
      paramObj = m.invoke(null, paramObj);
        }
    } catch (Exception e) {
    }

    log.debug("  Param: " + key + " = " + paramObj);
    q.setParameter(key, paramObj);
      }

      store.setTotalCount(q.getResultList().size());

      if (config.getPageSize() != null) {
    q.setMaxResults(config.getPageSize());
      }
      if (config.getStart() != null) {
    q.setFirstResult(config.getStart());
      }
      list = q.getResultList();
  } catch (Exception e) {
      log.warn("Error", e);
  }
View Full Code Here


   *
   */
  @SuppressWarnings("unchecked")
  @Override
  public List<Object> getEntityList(Store store) {
    Config config = store.getConfig();
    List<Object> list = new ArrayList<Object>();
   
    String persistenceUnitName = config.getPersistenceUnitName();
    EntityManager em = persistenceUnitName == null ?
        getEntityManager() : getEntityManager(persistenceUnitName);
   
    Map<String,Object> parameters = new HashMap<String,Object>(config.getParams());
       
    try {
      Class<?> clazz = config.getClazz();
      String className = clazz.getSimpleName();
      String alias = className.toLowerCase().substring(0,1);
     
      /*
       * Core JPQL
       */
      String jpql = "SELECT " + alias + " FROM " + className + " " + alias;
     
      /*
       * Where
       */
      String where = "";
      if (config.getWhere() != null) {
        where += config.getWhere();
      }
     
      /*
       * Filter
       */
      for (Filter filter : config.getFilters()) {
        if (!where.isEmpty()) where += " AND ";
       
        String val = String.valueOf(filter.getValue());
        String prop = filter.getProperty();
       
       
        /*
         * Handle between inclusive
         */
        if (val.contains(">=<")) {
          String[] filterParts = val.split(">=<");
         
          where += "(" + alias + "." + filter.getProperty() + " BETWEEN :" +
              prop + "_low AND :" + prop + "_high)" +
                  "";
          parameters.put(prop + "_low", filterParts[0]);
          parameters.put(prop + "_high", filterParts[1]);
         
        /*
         * Handle "OR"
         */
        } else if (String.valueOf(filter.getValue()).contains("||")) {
          String whereOr = "";
          int i = 1;
         
          for (String orPart : String.valueOf(filter.getValue()).split("\\|\\|")) {
            whereOr += whereOr.isEmpty() ? "(" : " OR ";
            whereOr += alias + "." + filter.getProperty() + " = :" + filter.getProperty() + i;
            parameters.put(filter.getProperty() + i, orPart);
            i++;
          }
          whereOr += ")";
          where += whereOr;
         
        } else {
          String eqType = String.valueOf(filter.getValue()).contains("%") ? " like " : " = ";
          if (eqType.contains("like")) {
            where += "lower(" + alias + "." + filter.getProperty() + ")" + eqType + ":" + filter.getProperty();
          } else {
            where += alias + "." + filter.getProperty() + eqType + ":" + filter.getProperty();
          }
         
          parameters.put(filter.getProperty(), filter.getValue());
        }
      }
     
     
      /*
       * Add where clause
       */
      if (!where.isEmpty()) jpql += " WHERE " + where;
     
     
      if (config.getSorters().size() > 0) {
        String sortClause = "";
        for (Sorter sorter : config.getSorters()) {
          if (!sortClause.isEmpty()) sortClause += ",";
          sortClause += alias + "." + sorter.getProperty() + " " + sorter.getDirection();
        }
        jpql += " ORDER BY " + sortClause;
      }
     
      log.debug("JPQL: " + jpql);
      Query q = em.createQuery(jpql, clazz);
     
      /*
       * Add params
       * TODO: This is tedius... we want to automatically determine the
       * type for the field we're trying to set the parameter for
       */
      for (String key : parameters.keySet()) {
        Object paramObj = parameters.get(key);
       
        Class<?> paramType = q.getParameter(key).getParameterType();
        String typeName = paramType.getSimpleName().toLowerCase();
       
        try {
          if (typeName.equals("boolean")) {
            String stringVal = (String) paramObj;
            paramObj = stringVal.equals("1") || stringVal.equals("true") || stringVal.equals("Y");
           
          } else if (typeName.equals("date")) {
            paramObj = dateFormat.parse((String) paramObj);
           
          } else {
            Method m = paramType.getDeclaredMethod("valueOf", String.class);
            paramObj = m.invoke(null, paramObj);
          }
        } catch (Exception e) {}
       
        log.debug("  Param: " + key + " = " + paramObj);
        q.setParameter(key, paramObj);
      }

      store.setTotalCount(q.getResultList().size());
     
      if (config.getPageSize() != null) q.setMaxResults(config.getPageSize());
      if (config.getStart() != null) q.setFirstResult(config.getStart());
      list = q.getResultList();
    } catch (Exception e) {
      log.warn("Error", e);
    }
     
View Full Code Here

   *
   */
  @SuppressWarnings("unchecked")
  @Override
  public List<Object> getEntityList(Store store) {
    Config config = store.getConfig();
    List<Object> list = new ArrayList<Object>();
   
    EntityManager em = entityManagerFactory.createEntityManager();
   
    Map<String,Object> parameters = new HashMap<String,Object>(config.getParams());
       
    try {
      Class<?> clazz = config.getClazz();
      String className = clazz.getSimpleName();
      String alias = className.toLowerCase().substring(0,1);
     
      /*
       * Core JPQL
       */
      String jpql = "SELECT " + alias + " FROM " + className + " " + alias;
     
      /*
       * Where
       */
      String where = "";
      if (config.getWhere() != null) {
        where += config.getWhere();
      }
     
      /*
       * Filter
       */
      for (Filter filter : config.getFilters()) {
        if (!where.isEmpty()) where += " AND ";
       
        String val = String.valueOf(filter.getValue());
        String prop = filter.getProperty();
       
       
        /*
         * Handle between inclusive
         */
        if (val.contains(">=<")) {
          String[] filterParts = val.split(">=<");
         
          where += "(" + alias + "." + filter.getProperty() + " BETWEEN :" +
              prop + "_low AND :" + prop + "_high)" +
                  "";
          parameters.put(prop + "_low", filterParts[0]);
          parameters.put(prop + "_high", filterParts[1]);
         
        /*
         * Handle "OR"
         */
        } else if (String.valueOf(filter.getValue()).contains("||")) {
          String whereOr = "";
          int i = 1;
         
          for (String orPart : String.valueOf(filter.getValue()).split("\\|\\|")) {
            whereOr += whereOr.isEmpty() ? "(" : " OR ";
            whereOr += alias + "." + filter.getProperty() + " = :" + filter.getProperty() + i;
            parameters.put(filter.getProperty() + i, orPart);
            i++;
          }
          whereOr += ")";
          where += whereOr;
         
        } else {
          String eqType = String.valueOf(filter.getValue()).contains("%") ? " like " : " = ";
          if (eqType.contains("like")) {
            where += "lower(" + alias + "." + filter.getProperty() + ")" + eqType + ":" + filter.getProperty();
          } else {
            where += alias + "." + filter.getProperty() + eqType + ":" + filter.getProperty();
          }
         
          parameters.put(filter.getProperty(), filter.getValue());
        }
      }
     
     
      /*
       * Add where clause
       */
      if (!where.isEmpty()) jpql += " WHERE " + where;
     
     
      if (config.getSorters().size() > 0) {
        String sortClause = "";
        for (Sorter sorter : config.getSorters()) {
          if (!sortClause.isEmpty()) sortClause += ",";
          sortClause += alias + "." + sorter.getProperty() + " " + sorter.getDirection();
        }
        jpql += " ORDER BY " + sortClause;
      }
     
      log.debug("JPQL: " + jpql);
      Query q = em.createQuery(jpql, clazz);
     
      /*
       * Add params
       * TODO: This is tedius... we want to automatically determine the
       * type for the field we're trying to set the parameter for
       */
      for (String key : parameters.keySet()) {
        Object paramObj = parameters.get(key);
       
        Class<?> paramType = q.getParameter(key).getParameterType();
        String typeName = paramType.getSimpleName().toLowerCase();
       
        try {
          if (typeName.equals("boolean")) {
            String stringVal = (String) paramObj;
            paramObj = stringVal.equals("1") || stringVal.equals("true") || stringVal.equals("Y");
           
          } else if (typeName.equals("date")) {
            paramObj = dateFormat.parse((String) paramObj);
           
          } else {
            Method m = paramType.getDeclaredMethod("valueOf", String.class);
            paramObj = m.invoke(null, paramObj);
          }
        } catch (Exception e) {}
       
        log.debug("  Param: " + key + " = " + paramObj);
        q.setParameter(key, paramObj);
      }

      store.setTotalCount(q.getResultList().size());
     
      if (config.getPageSize() != null) q.setMaxResults(config.getPageSize());
      if (config.getStart() != null) q.setFirstResult(config.getStart());
      list = q.getResultList();
    } catch (Exception e) {
      log.warn("Error", e);
    }
     
View Full Code Here

TOP

Related Classes of com.adaptrex.core.ext.data.Config

Copyright © 2018 www.massapicom. 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.