Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* This Source Code Form is subject to the terms of the Mozilla Public
   * License, v. 2.0. If a copy of the MPL was not distributed with this file,
   * You can obtain one at http://mozilla.org/MPL/2.0/. */
  
  package pt.webdetails.cda.cache;
  
 import java.util.Date;
 import java.util.List;
 import  org.apache.commons.io.output.NullOutputStream;
 import  org.hibernate.Session;
 
 import  org.json.JSONArray;
 import  org.json.JSONException;
 import  org.json.JSONObject;

Author(s):
pdpi
 
 public abstract class Query implements Serializable
 {
 
   private static final long serialVersionUID = 1L;
 
   private long id;
   private String cdaFile;
   private String dataAccessId;
   private List<CachedParamparameters;
   private int hitCountmissCount;
 
 
   public Query()
   {
   }
 
 
   public Query(JSONObject jsonthrows JSONException
   {
     this. = getJsonString(json"cdaFile");
     this. = getJsonString(json"dataAccessId");
 
     this. = getJsonInt(json"hitCount");
     this. = getJsonInt(json"missCount");
 
     if (json.has("parameters"))
     {
       this. = new ArrayList<CachedParam>();
       Object params = json.get("parameters");
 
       if (params instanceof JSONArray)
       {
         for (int i = 0; i < ((JSONArray) params).length(); i++)
         {
           this..add(new CachedParam(((JSONArray) params).getJSONObject(i)));
         }
       }
       else
       {
         String[] names = JSONObject.getNames((JSONObject) params);
         if (names != null)
         {
           for (String name : names)
           {
             this..add(new CachedParam(name, ((JSONObject) params).getString(name)));
           }
         }
       }
 
     }
   }
 
 
   public long getId()
   {
     return ;
   }
 
 
   public void setId(long id)
   {
     this. = id;
   }
 
 
   public String getCdaFile()
   {
     return ;
   }
 
 
  public void setCdaFile(String cdaFile)
  {
    this. = cdaFile;
  }
  public String getDataAccessId()
  {
    return ;
  }
  public void setDataAccessId(String dataAccessId)
  {
    this. = dataAccessId;
  }
  public int getHitCount()
  {
    return ;
  }
  public void setHitCount(int hitCount)
  {
    this. = hitCount;
  }
  public int getMissCount()
  {
    return ;
  }
  public void setMissCount(int missCount)
  {
    this. = missCount;
  }
  {
    return ;
  }
  public void setParameters(List<CachedParamparameters)
  {
    this. = parameters;
  }
  public void addParameter(CachedParam p)
  {
    if ( == null)
    {
      this. = new ArrayList<CachedParam>();
    }
    this..add(p);
  }
  public void registerRequest(boolean hit)
  {
    if (hit)
    {
      setHitCount(getHitCount() + 1);
    }
    else
    {
      setMissCount(getMissCount() + 1);
    }
  }
  public JSONObject toJSON()
  {
    JSONObject output = new JSONObject();
    JSONObject params = new JSONObject();
    try
    {
      for (CachedParam param : getParameters())
      {
        params.put(param.getName(), param.getValue());
      }
    }
    catch (JSONException jse)
    {
      ..error("Failed to build parameters for query: " + getCdaFile() + "/" + getDataAccessId());
      return null;
    }
    try
    {
      output.put("id"getId());
      output.put("cdaFile"getCdaFile());
      output.put("dataAccessId"getDataAccessId());
      output.put("parameters"params);
      output.put("hitCount"getHitCount());
      output.put("missCount"getMissCount());
    }
    catch (JSONException jse)
    {
      ..error("Failed to build JSON for query: " + getCdaFile() + "/" + getDataAccessId());
      return null;
    }
    return output;
  }
  public void execute() throws Exception
  {
    try
    {
      executeQuery();
    }
    catch (Exception e)
    {
      ..error("Failed to execute query " + toString());
    }
  }
  protected void executeQuery() throws Exception
  {
    final CdaSettings cdaSettings = SettingsManager.getInstance().parseSettingsFile(getCdaFile());
    final QueryOptions queryOptions = new QueryOptions();
    queryOptions.setDataAccessId(getDataAccessId());
    // force query to be refreshed
    queryOptions.setCacheBypass(true);
    for (Object o : getParameters())
    {
      CachedParam param = (CachedParamo;
      queryOptions.addParameter(param.getName(), param.getValue());
    }
    OutputStream nullOut = new NullOutputStream();
    Date d = new Date();
    CdaEngine.getInstance().doQuery(nullOutcdaSettingsqueryOptions);
    setTimeElapsed(new Date().getTime() - d.getTime());
    ..debug("Time elapsed: " + Double.toString(new Double(getTimeElapsed()) / 1000) + "s");
  }
  public abstract void setTimeElapsed(long timeElapsed);
  public abstract long getTimeElapsed();
  public void save() throws PluginHibernateException
  {
    if (getId() == 0)
    {
      Session s = PluginHibernateUtil.getSession();
      s.save(this);
    }
  }
  protected static String getJsonString(JSONObject jsonString expr)
  {
    try
    {
      return json.getString(expr);
    }
    catch (Exception e)
    {
      return "";
    }
  }
  protected static int getJsonInt(JSONObject jsonString expr)
  {
    try
    {
      return json.getInt(expr);
    }
    catch (Exception e)
    {
      return 0;
    }
  }
  protected static Date getJsonDate(JSONObject jsonString expr)
  {
    try
    {
      return new Date(json.getLong(expr));
    }
    catch (Exception e)
    {
      return new Date(0);
    }
  }
  protected static boolean getJsonBoolean(JSONObject jsonString expr)
  {
    try
    {
      return json.getBoolean(expr);
    }
    catch (Exception e)
    {
      return false;
    }
  }
New to GrepCode? Check out our FAQ X