All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.unidal.dal.jdbc.QueryDef Maven / Gradle / Ivy

The newest version!
package org.unidal.dal.jdbc;

import java.util.List;

import org.unidal.dal.jdbc.query.token.Token;
import org.unidal.dal.jdbc.query.token.TokenParser;
import org.unidal.dal.jdbc.raw.RawEntity;

public class QueryDef {
   private String m_name;

   private Class m_entityClass;

   private String m_pattern;

   private QueryType m_type;

   private List m_tokens;

   private boolean m_storeProcedure;

   private boolean m_raw;

   public QueryDef(String name, Class entityClass, QueryType type, String pattern) {
      m_name = name;
      m_entityClass = entityClass;
      m_type = type;
      m_pattern = pattern;
      m_raw = RawEntity.class.isAssignableFrom(entityClass);
   }

   public QueryDef(String name, Class entityClass, QueryType type, String pattern, boolean isStoreProcedure) {
      this(name, entityClass, type, pattern);

      m_storeProcedure = isStoreProcedure;
   }

   public Class getEntityClass() {
      return m_entityClass;
   }

   public String getName() {
      return m_name;
   }

   public QueryType getType() {
      return m_type;
   }

   public boolean isRaw() {
      return m_raw;
   }

   public boolean isStoreProcedure() {
      return m_storeProcedure;
   }

   public List parse(TokenParser parser) {
      if (m_tokens == null) {
         synchronized (this) {
            if (m_tokens == null) {
               m_tokens = parser.parse(m_pattern);
            }
         }
      }

      return m_tokens;
   }

   @Override
   public String toString() {
      return m_pattern;
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy