00001 /** 00002 * C-JDBC: Clustered JDBC. 00003 * Copyright (C) 2002-2004 French National Institute For Research In Computer 00004 * Science And Control (INRIA). 00005 * Contact: c-jdbc@objectweb.org 00006 * 00007 * This library is free software; you can redistribute it and/or modify it 00008 * under the terms of the GNU Lesser General Public License as published by the 00009 * Free Software Foundation; either version 2.1 of the License, or any later 00010 * version. 00011 * 00012 * This library is distributed in the hope that it will be useful, but WITHOUT 00013 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 00015 * for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public License 00018 * along with this library; if not, write to the Free Software Foundation, 00019 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 00020 * 00021 * Initial developer(s): Emmanuel Cecchet. 00022 * Contributor(s): Sara Bouchenak. 00023 */ 00024 00025 package org.objectweb.cjdbc.common.sql; 00026 00027 /** 00028 * Defines SQL queries parsing granularities. 00029 * 00030 * @author <a href="mailto:Emmanuel.Cecchet@inria.fr">Emmanuel Cecchet</a> 00031 * @author <a href="mailto:Sara.Bouchenak@epfl.ch">Sara Bouchenak</a> 00032 * @version 1.0 00033 */ 00034 public class ParsingGranularities 00035 { 00036 /** The request is not parsed. */ 00037 public static final int NO_PARSING = 0; 00038 00039 /** 00040 * Table granularity. Only table dependencies are computed. 00041 */ 00042 public static final int TABLE = 1; 00043 00044 /** 00045 * Column granularity. Column dependencies are computed (both select and 00046 * where clauses). 00047 */ 00048 public static final int COLUMN = 2; 00049 00050 /** 00051 * Column granularity with <code>UNIQUE</code> queries. 00052 * 00053 * <p> 00054 * Same as <code>COLUMN</code> except that <code>UNIQUE</code> queries 00055 * that select a single row based on a key are flagged <code>UNIQUE</code> 00056 * (and should not be invalidated on <code>INSERTs</code>). 00057 */ 00058 public static final int COLUMN_UNIQUE = 3; 00059 00060 /** 00061 * Returns the granularity value in a <code>String</code> form. 00062 * 00063 * @param granularity a granularity value 00064 * @return the <code>String</code> form of the granularity 00065 */ 00066 public static String getInformation(int granularity) 00067 { 00068 switch (granularity) 00069 { 00070 case NO_PARSING : 00071 return "NO_PARSING"; 00072 case TABLE : 00073 return "TABLE"; 00074 case COLUMN : 00075 return "COLUMN"; 00076 case COLUMN_UNIQUE : 00077 return "COLUMN_UNIQUE"; 00078 default : 00079 return "Illegal parsing granularity"; 00080 } 00081 } 00082 }