Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.hsqldb;
  
  import org.hsqldb.lib.Set;
  
 {
   private Database database;
   private IntKeyHashMap schemaMap;
   private IntKeyHashMap sqlLookup;
   private IntKeyHashMap csidMap;
   private int next_cs_id;
 
   CompiledStatementManager(Database paramDatabase)
   {
     this.database = paramDatabase;
     this.schemaMap = new IntKeyHashMap();
     this.sqlLookup = new IntKeyHashMap();
     this.csidMap = new IntKeyHashMap();
     this.sessionUseMap = new IntKeyHashMap();
     this.useMap = new IntKeyIntValueHashMap();
     this.next_cs_id = 0;
   }
 
   synchronized void reset()
   {
     this.schemaMap.clear();
     this.sqlLookup.clear();
     this.csidMap.clear();
     this.sessionUseMap.clear();
     this.useMap.clear();
     this.next_cs_id = 0;
   }
 
   synchronized void resetStatements()
   {
     Iterator localIterator = this.csidMap.values().iterator();
     while (localIterator.hasNext())
     {
       CompiledStatement localCompiledStatement = (CompiledStatement)localIterator.next();
       localCompiledStatement.clearVariables();
     }
   }
 
   private int nextID()
   {
     this.next_cs_id += 1;
     return this.next_cs_id;
   }
 
   private int getStatementID(HsqlNameManager.HsqlName paramHsqlNameString paramString)
   {
     IntValueHashMap localIntValueHashMap = (IntValueHashMap)this.schemaMap.get(paramHsqlName.hashCode());
     if (localIntValueHashMap == null)
       return -1;
     return localIntValueHashMap.get(paramString, -1);
   }
 
   synchronized CompiledStatement getStatement(Session paramSessionint paramInt)
   {
     CompiledStatement localCompiledStatement = (CompiledStatement)this.csidMap.get(paramInt);
     if (localCompiledStatement == null)
       return null;
     if (!localCompiledStatement.isValid)
     {
       String str = (String)this.sqlLookup.get(paramInt);
       try
       {
         localCompiledStatement = compileSql(paramSession, str, localCompiledStatement.schemaHsqlName.name);
         localCompiledStatement.id = paramInt;
         this.csidMap.put(paramInt, localCompiledStatement);
       }
       catch (Throwable localThrowable)
       {
         freeStatement(paramInt, paramSession.getId(), true);
         return null;
       }
     }
     return localCompiledStatement;
   }
 
   private void linkSession(int paramInt1int paramInt2)
   {
     IntKeyIntValueHashMap localIntKeyIntValueHashMap = (IntKeyIntValueHashMap)this.sessionUseMap.get(paramInt2);
     if (localIntKeyIntValueHashMap == null)
     {
       localIntKeyIntValueHashMap = new IntKeyIntValueHashMap();
       this.sessionUseMap.put(paramInt2, localIntKeyIntValueHashMap);
     }
     int i = localIntKeyIntValueHashMap.get(paramInt1, 0);
     localIntKeyIntValueHashMap.put(paramInt1, i + 1);
     if (i == 0)
       this.useMap.put(paramInt1, this.useMap.get(paramInt1, 0) + 1);
  }
  private int registerStatement(int paramIntCompiledStatement paramCompiledStatement)
  {
    if (paramInt < 0)
    {
      paramInt = nextID();
      int i = paramCompiledStatement.schemaHsqlName.hashCode();
      IntValueHashMap localIntValueHashMap = (IntValueHashMap)this.schemaMap.get(i);
      if (localIntValueHashMap == null)
      {
        localIntValueHashMap = new IntValueHashMap();
        this.schemaMap.put(i, localIntValueHashMap);
      }
      localIntValueHashMap.put(paramCompiledStatement.sql, paramInt);
      this.sqlLookup.put(paramInt, paramCompiledStatement.sql);
    }
    paramCompiledStatement.id = paramInt;
    this.csidMap.put(paramInt, paramCompiledStatement);
    return paramInt;
  }
  void freeStatement(int paramInt1int paramInt2boolean paramBoolean)
  {
    if (paramInt1 == -1)
      return;
    IntKeyIntValueHashMap localIntKeyIntValueHashMap = (IntKeyIntValueHashMap)this.sessionUseMap.get(paramInt2);
    if (localIntKeyIntValueHashMap == null)
      return;
    int i = localIntKeyIntValueHashMap.get(paramInt1, 0);
    if (i != 0)
      if ((i == 1) || (paramBoolean))
      {
        localIntKeyIntValueHashMap.remove(paramInt1);
        int j = this.useMap.get(paramInt1, 0);
        if (j != 0)
          if (j == 1)
          {
            CompiledStatement localCompiledStatement = (CompiledStatement)this.csidMap.remove(paramInt1);
            if (localCompiledStatement != null)
            {
              int k = localCompiledStatement.schemaHsqlName.hashCode();
              IntValueHashMap localIntValueHashMap = (IntValueHashMap)this.schemaMap.get(k);
              String str = (String)this.sqlLookup.remove(paramInt1);
              localIntValueHashMap.remove(str);
            }
            this.useMap.remove(paramInt1);
          }
          else
          {
            this.useMap.put(paramInt1, j - 1);
          }
      }
      else
      {
        localIntKeyIntValueHashMap.put(paramInt1, i - 1);
      }
  }
  synchronized void removeSession(int paramInt)
  {
    IntKeyIntValueHashMap localIntKeyIntValueHashMap = (IntKeyIntValueHashMap)this.sessionUseMap.remove(paramInt);
    if (localIntKeyIntValueHashMap == null)
      return;
    Iterator localIterator = localIntKeyIntValueHashMap.keySet().iterator();
    while (localIterator.hasNext())
    {
      int i = localIterator.nextInt();
      int j = this.useMap.get(i, 1) - 1;
      if (j == 0)
      {
        CompiledStatement localCompiledStatement = (CompiledStatement)this.csidMap.remove(i);
        if (localCompiledStatement != null)
        {
          int k = localCompiledStatement.schemaHsqlName.hashCode();
          IntValueHashMap localIntValueHashMap = (IntValueHashMap)this.schemaMap.get(k);
          String str = (String)this.sqlLookup.remove(i);
          localIntValueHashMap.remove(str);
        }
        this.useMap.remove(i);
        continue;
      }
      this.useMap.put(i, j);
    }
  }
  synchronized CompiledStatement compile(Session paramSessionString paramString)
    throws Throwable
  {
    int i = getStatementID(paramSession.currentSchema, paramString);
    CompiledStatement localCompiledStatement = (CompiledStatement)this.csidMap.get(i);
    if ((localCompiledStatement == null) || (!localCompiledStatement.isValid) || (!paramSession.isAdmin()))
    {
      localCompiledStatement = compileSql(paramSession, paramString, paramSession.currentSchema.name);
      i = registerStatement(i, localCompiledStatement);
    }
    linkSession(i, paramSession.getId());
    return localCompiledStatement;
  }
  private CompiledStatement compileSql(Session paramSessionString paramString1String paramString2)
    throws Throwable
  {
    Session localSession = this.database.sessionManager.getSysSession(paramString2, paramSession.getUser());
    return localSession.sqlCompileStatement(paramString1);
  }
/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/thirdparty-all.jar
 * Qualified Name:     org.hsqldb.CompiledStatementManager
 * JD-Core Version:    0.6.0
 */
New to GrepCode? Check out our FAQ X