]> source.dussan.org Git - jackcess.git/commitdiff
add Query.isHidden method and expose original object flags on Query instances
authorJames Ahlborn <jtahlborn@yahoo.com>
Wed, 31 Jul 2013 03:40:21 +0000 (03:40 +0000)
committerJames Ahlborn <jtahlborn@yahoo.com>
Wed, 31 Jul 2013 03:40:21 +0000 (03:40 +0000)
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@766 f203690c-595d-4dc9-a70b-905162fa7fd2

14 files changed:
src/java/com/healthmarketscience/jackcess/impl/DatabaseImpl.java
src/java/com/healthmarketscience/jackcess/impl/query/AppendQueryImpl.java
src/java/com/healthmarketscience/jackcess/impl/query/BaseSelectQueryImpl.java
src/java/com/healthmarketscience/jackcess/impl/query/CrossTabQueryImpl.java
src/java/com/healthmarketscience/jackcess/impl/query/DataDefinitionQueryImpl.java
src/java/com/healthmarketscience/jackcess/impl/query/DeleteQueryImpl.java
src/java/com/healthmarketscience/jackcess/impl/query/MakeTableQueryImpl.java
src/java/com/healthmarketscience/jackcess/impl/query/PassthroughQueryImpl.java
src/java/com/healthmarketscience/jackcess/impl/query/QueryImpl.java
src/java/com/healthmarketscience/jackcess/impl/query/SelectQueryImpl.java
src/java/com/healthmarketscience/jackcess/impl/query/UnionQueryImpl.java
src/java/com/healthmarketscience/jackcess/impl/query/UpdateQueryImpl.java
src/java/com/healthmarketscience/jackcess/query/Query.java
test/src/java/com/healthmarketscience/jackcess/query/QueryTest.java

index 87f7ef192021ba2bdbe0e50225a1f13690e274c1..da70cbd5e05ecb2ab2b6130f328b0be27f263e6b 100644 (file)
@@ -193,7 +193,7 @@ public class DatabaseImpl implements Database
   /** this object is another type of "system" object */
   static final int ALT_SYSTEM_OBJECT_FLAG = 0x02;
   /** this object is hidden */
-  static final int HIDDEN_OBJECT_FLAG = 0x08;
+  public static final int HIDDEN_OBJECT_FLAG = 0x08;
   /** all flags which seem to indicate some type of system object */
   static final int SYSTEM_OBJECT_FLAGS = 
     SYSTEM_OBJECT_FLAG | ALT_SYSTEM_OBJECT_FLAG;
index 1177d6e15fe47708ad2923b1c3725da413aa953e..285ff04114b0dc9b8d0a923ebedbef13cd367f6c 100644 (file)
@@ -42,8 +42,9 @@ import com.healthmarketscience.jackcess.query.AppendQuery;
 public class AppendQueryImpl extends BaseSelectQueryImpl implements AppendQuery
 {
 
-  public AppendQueryImpl(String name, List<Row> rows, int objectId) {
-    super(name, rows, objectId, Type.APPEND);
+  public AppendQueryImpl(String name, List<Row> rows, int objectId, 
+                         int objectFlag) {
+    super(name, rows, objectId, objectFlag, Type.APPEND);
   }
 
   public String getTargetTable() {
index 0fddb59457fcbff59be981e59d5aa883b2e97d9a..b4d9a2239b7a81256b1c77ad069c6d8cd4e250e9 100644 (file)
@@ -42,9 +42,9 @@ public abstract class BaseSelectQueryImpl extends QueryImpl
   implements BaseSelectQuery
 {
 
-  protected BaseSelectQueryImpl(String name, List<Row> rows, int objectId,
-                            Type type) {
-    super(name, rows, objectId, type);
+  protected BaseSelectQueryImpl(String name, List<Row> rows, int objectId, 
+                                int objectFlag, Type type) {
+    super(name, rows, objectId, objectFlag, type);
   }
 
   protected void toSQLSelectString(StringBuilder builder,
index d4b7e285854402f1673c7aabc6f7eaad5c4ddf1b..a88ef5b023234ef37bee2bd92516cc83b30d23f4 100644 (file)
@@ -43,8 +43,9 @@ public class CrossTabQueryImpl extends BaseSelectQueryImpl
   implements CrossTabQuery
 {
 
-  public CrossTabQueryImpl(String name, List<Row> rows, int objectId) {
-    super(name, rows, objectId, Type.CROSS_TAB);
+  public CrossTabQueryImpl(String name, List<Row> rows, int objectId, 
+                           int objectFlag) {
+    super(name, rows, objectId, objectFlag, Type.CROSS_TAB);
   }
 
   protected Row getTransformRow() {
index 27ee5ab5ada499d0726e1b4a4668f3fe94acd7ea..491c928a2860b16b56a419ea3d18aa1f6fd373a0 100644 (file)
@@ -40,8 +40,9 @@ public class DataDefinitionQueryImpl extends QueryImpl
   implements DataDefinitionQuery
 {
 
-  public DataDefinitionQueryImpl(String name, List<Row> rows, int objectId) {
-    super(name, rows, objectId, Type.DATA_DEFINITION);
+  public DataDefinitionQueryImpl(String name, List<Row> rows, int objectId, 
+                                 int objectFlag) {
+    super(name, rows, objectId, objectFlag, Type.DATA_DEFINITION);
   }
 
   public String getDDLString() {
index 8c96b6d5b8cf62a16eab58993b8f618637443ee4..fce02ecf9674e6d685e04c358f24ff758f7e15cb 100644 (file)
@@ -40,8 +40,9 @@ import com.healthmarketscience.jackcess.query.DeleteQuery;
 public class DeleteQueryImpl extends BaseSelectQueryImpl implements DeleteQuery
 {
 
-  public DeleteQueryImpl(String name, List<Row> rows, int objectId) {
-    super(name, rows, objectId, Type.DELETE);
+  public DeleteQueryImpl(String name, List<Row> rows, int objectId, 
+                         int objectFlag) {
+    super(name, rows, objectId, objectFlag, Type.DELETE);
   }
 
   @Override
index 29e402bbd706cfec4e5e88509a8a3d680b5edd4a..00c94177c9f60d0b7425db99c0e7c6feed195328 100644 (file)
@@ -41,8 +41,9 @@ public class MakeTableQueryImpl extends BaseSelectQueryImpl
   implements MakeTableQuery
 {
 
-  public MakeTableQueryImpl(String name, List<Row> rows, int objectId) {
-    super(name, rows, objectId, Type.MAKE_TABLE);
+  public MakeTableQueryImpl(String name, List<Row> rows, int objectId, 
+                            int objectFlag) {
+    super(name, rows, objectId, objectFlag, Type.MAKE_TABLE);
   }
 
   public String getTargetTable() {
index af67e2c151d0afb784fedaab58b92303c63ace9b..7674e5fdefebea0d4f3cfdd4227c096577ac2955 100644 (file)
@@ -40,8 +40,9 @@ import com.healthmarketscience.jackcess.query.PassthroughQuery;
 public class PassthroughQueryImpl extends QueryImpl implements PassthroughQuery
 {
 
-  public PassthroughQueryImpl(String name, List<Row> rows, int objectId) {
-    super(name, rows, objectId, Type.PASSTHROUGH);
+  public PassthroughQueryImpl(String name, List<Row> rows, int objectId, 
+                              int objectFlag) {
+    super(name, rows, objectId, objectFlag, Type.PASSTHROUGH);
   }
 
   public String getConnectionString() {
index 354a276e2e7f8729c0d14f2a4cc1e1a35d81b891..e8952cdc648ee7f967b04919bfdd2a4c0f906416 100644 (file)
@@ -36,10 +36,11 @@ import java.util.List;
 import java.util.Map;
 
 import com.healthmarketscience.jackcess.RowId;
-import com.healthmarketscience.jackcess.query.Query;
+import com.healthmarketscience.jackcess.impl.DatabaseImpl;
 import com.healthmarketscience.jackcess.impl.RowIdImpl;
 import com.healthmarketscience.jackcess.impl.RowImpl;
 import static com.healthmarketscience.jackcess.impl.query.QueryFormat.*;
+import com.healthmarketscience.jackcess.query.Query;
 import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -62,12 +63,16 @@ public abstract class QueryImpl implements Query
   private final List<Row> _rows;
   private final int _objectId;
   private final Type _type;
+  private final int _objectFlag;
 
-  protected QueryImpl(String name, List<Row> rows, int objectId, Type type) {
+  protected QueryImpl(String name, List<Row> rows, int objectId, int objectFlag, 
+                      Type type) 
+  {
     _name = name;
     _rows = rows;
     _objectId = objectId;
     _type = type;
+    _objectFlag = objectFlag;
 
     if(type != Type.UNKNOWN) {
       short foundType = getShortValue(getQueryType(rows),
@@ -92,6 +97,10 @@ public abstract class QueryImpl implements Query
     return _type;
   }
 
+  public boolean isHidden() {
+    return((_objectFlag & DatabaseImpl.HIDDEN_OBJECT_FLAG) != 0);
+  }
+
   /**
    * Returns the unique object id of the query.
    */
@@ -100,7 +109,7 @@ public abstract class QueryImpl implements Query
   }
 
   public int getObjectFlag() {
-    return getType().getObjectFlag();
+    return _objectFlag;
   }
 
   /**
@@ -389,23 +398,23 @@ public abstract class QueryImpl implements Query
     try {
       switch(typeFlag) {
       case SELECT_QUERY_OBJECT_FLAG:
-        return new SelectQueryImpl(name, rows, objectId);
+        return new SelectQueryImpl(name, rows, objectId, objectFlag);
       case MAKE_TABLE_QUERY_OBJECT_FLAG:
-        return new MakeTableQueryImpl(name, rows, objectId);
+        return new MakeTableQueryImpl(name, rows, objectId, objectFlag);
       case APPEND_QUERY_OBJECT_FLAG:
-        return new AppendQueryImpl(name, rows, objectId);
+        return new AppendQueryImpl(name, rows, objectId, objectFlag);
       case UPDATE_QUERY_OBJECT_FLAG:
-        return new UpdateQueryImpl(name, rows, objectId);
+        return new UpdateQueryImpl(name, rows, objectId, objectFlag);
       case DELETE_QUERY_OBJECT_FLAG:
-        return new DeleteQueryImpl(name, rows, objectId);
+        return new DeleteQueryImpl(name, rows, objectId, objectFlag);
       case CROSS_TAB_QUERY_OBJECT_FLAG:
-        return new CrossTabQueryImpl(name, rows, objectId);
+        return new CrossTabQueryImpl(name, rows, objectId, objectFlag);
       case DATA_DEF_QUERY_OBJECT_FLAG:
-        return new DataDefinitionQueryImpl(name, rows, objectId);
+        return new DataDefinitionQueryImpl(name, rows, objectId, objectFlag);
       case PASSTHROUGH_QUERY_OBJECT_FLAG:
-        return new PassthroughQueryImpl(name, rows, objectId);
+        return new PassthroughQueryImpl(name, rows, objectId, objectFlag);
       case UNION_QUERY_OBJECT_FLAG:
-        return new UnionQueryImpl(name, rows, objectId);
+        return new UnionQueryImpl(name, rows, objectId, objectFlag);
       default:
         // unknown querytype
         throw new IllegalStateException(
@@ -531,18 +540,10 @@ public abstract class QueryImpl implements Query
 
   private static final class UnknownQueryImpl extends QueryImpl
   {
-    private final int _objectFlag;
-
     private UnknownQueryImpl(String name, List<Row> rows, int objectId, 
                              int objectFlag) 
     {
-      super(name, rows, objectId, Type.UNKNOWN);
-      _objectFlag = objectFlag;
-    }
-
-    @Override
-    public int getObjectFlag() {
-      return _objectFlag;
+      super(name, rows, objectId, objectFlag, Type.UNKNOWN);
     }
 
     @Override
index dfe326a2c80c2034e44bb50f8e73e0c40ccdd65e..d7e817e1f68d235735182e3d100b5a32c2916de1 100644 (file)
@@ -40,8 +40,9 @@ import com.healthmarketscience.jackcess.query.SelectQuery;
 public class SelectQueryImpl extends BaseSelectQueryImpl implements SelectQuery
 {
 
-  public SelectQueryImpl(String name, List<Row> rows, int objectId) {
-    super(name, rows, objectId, Type.SELECT);
+  public SelectQueryImpl(String name, List<Row> rows, int objectId, 
+                         int objectFlag) {
+    super(name, rows, objectId, objectFlag, Type.SELECT);
   }
 
   @Override
index d94efc1ecfc3283acb49b378b3cd0d2b3d618f05..d01458d99ec425193ed906fcb5ade87b8fde1f95 100644 (file)
@@ -41,8 +41,9 @@ import com.healthmarketscience.jackcess.query.UnionQuery;
  */
 public class UnionQueryImpl extends QueryImpl implements UnionQuery
 {
-  public UnionQueryImpl(String name, List<Row> rows, int objectId) {
-    super(name, rows, objectId, Type.UNION);
+  public UnionQueryImpl(String name, List<Row> rows, int objectId, 
+                        int objectFlag) {
+    super(name, rows, objectId, objectFlag, Type.UNION);
   }
 
   public String getUnionType() {
index 093f3ec7b3521bca4dbfdf958ff812f201b6ffa0..3e334d82723e71acbabe4d812b1fe90b65bf8f4b 100644 (file)
@@ -42,8 +42,9 @@ import com.healthmarketscience.jackcess.query.UpdateQuery;
 public class UpdateQueryImpl extends QueryImpl implements UpdateQuery
 {
 
-  public UpdateQueryImpl(String name, List<Row> rows, int objectId) {
-    super(name, rows, objectId, Type.UPDATE);
+  public UpdateQueryImpl(String name, List<Row> rows, int objectId, 
+                         int objectFlag) {
+    super(name, rows, objectId, objectFlag, Type.UPDATE);
   }
 
   public List<String> getTargetTables() 
index f6d6cc3c74726965170da018d3985c25428f6975..991d53a259d646c3333543f94ad390a66e70008f 100644 (file)
@@ -74,6 +74,12 @@ public interface Query
    */
   public Type getType();
 
+  /**
+   * Whether or not this query has been marked as hidden.
+   * @usage _general_method_
+   */
+  public boolean isHidden();
+
   /**
    * Returns the unique object id of the query.
    */
index 015f2fc57567b3ed1c44ea3a5d2dd83308373330..ade3ec19713c724bde4bf9a42dbe645c72d088d5 100644 (file)
@@ -188,7 +188,8 @@ public class QueryTest extends TestCase
     }
 
     try {
-      new QueryImpl("TestQuery", rowList, 13, Query.Type.UNION) {
+      new QueryImpl("TestQuery", rowList, 13, Query.Type.UNION.getObjectFlag(),
+                    Query.Type.UNION) {
         @Override protected void toSQLString(StringBuilder builder) {
           throw new UnsupportedOperationException();
         }};