From a6e593d6baa183a37e5be74339dbc54eee4060cc Mon Sep 17 00:00:00 2001 From: Ainur Yagudin Date: Wed, 2 Mar 2022 17:12:00 +0300 Subject: [PATCH 1/8] CB-1332 add features to data container --- .../service/navigator/WebDatabaseObjectInfo.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java index f6c0cbd3584..2e092f71d54 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java @@ -32,6 +32,8 @@ import java.util.ArrayList; import java.util.List; +import static org.jkiss.dbeaver.model.struct.DBSDataContainer.FEATURE_DATA_FILTER; + /** * Web connection info */ @@ -155,7 +157,12 @@ public String[] getFeatures() { private static void getObjectFeatures(DBSObject object, List features) { if (object instanceof DBPScriptObject) features.add("script"); if (object instanceof DBPScriptObjectExt) features.add("scriptExtended"); - if (object instanceof DBSDataContainer) features.add("dataContainer"); + if (object instanceof DBSDataContainer) { + features.add("dataContainer"); + if (((DBSDataContainer) object).isFeatureSupported(FEATURE_DATA_FILTER)) { + features.add(FEATURE_DATA_FILTER); + } + } if (object instanceof DBSDataManipulator) features.add("dataManipulator"); if (object instanceof DBSEntity) features.add("entity"); if (object instanceof DBSSchema) features.add("schema"); From 880ee73145cec3b11f687cc07dab8a717e7436f4 Mon Sep 17 00:00:00 2001 From: Ainur Yagudin Date: Thu, 3 Mar 2022 10:20:25 +0300 Subject: [PATCH 2/8] CB-1332 add features to data container --- .../cloudbeaver/service/navigator/WebDatabaseObjectInfo.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java index 2e092f71d54..b16b99cf29f 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java @@ -32,7 +32,6 @@ import java.util.ArrayList; import java.util.List; -import static org.jkiss.dbeaver.model.struct.DBSDataContainer.FEATURE_DATA_FILTER; /** * Web connection info @@ -159,8 +158,8 @@ private static void getObjectFeatures(DBSObject object, List features) { if (object instanceof DBPScriptObjectExt) features.add("scriptExtended"); if (object instanceof DBSDataContainer) { features.add("dataContainer"); - if (((DBSDataContainer) object).isFeatureSupported(FEATURE_DATA_FILTER)) { - features.add(FEATURE_DATA_FILTER); + if (((DBSDataContainer) object).isFeatureSupported("data.filter")) { + features.add("dataWithFilter"); } } if (object instanceof DBSDataManipulator) features.add("dataManipulator"); From d0117fcc3b0f3e26bb84c078a63a6f6543b626e5 Mon Sep 17 00:00:00 2001 From: Ainur Yagudin Date: Thu, 3 Mar 2022 10:33:16 +0300 Subject: [PATCH 3/8] CB-1332 add features to data container --- .../navigator/WebDatabaseObjectInfo.java | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java index b16b99cf29f..ddb98dc10f5 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java @@ -40,6 +40,20 @@ public class WebDatabaseObjectInfo { private static final Log log = Log.getLog(WebDatabaseObjectInfo.class); + public static final String CATALOG = "catalog"; + public static final String CONTAINS_DATA_FILTER = "containsDataFilter"; + public static final String DATA_CONTAINER = "dataContainer"; + public static final String DATA_MANIPULATOR = "dataManipulator"; + public static final String DATA_SOURCE = "dataSource"; + public static final String DATA_SOURCE_CONNECTED = "dataSourceConnected"; + public static final String DATA_SOURCE_TEMPORARY = "dataSourceTemporary"; + public static final String ENTITY = "entity"; + public static final String ENTITY_CONTAINER = "entityContainer"; + public static final String OBJECT_CONTAINER = "objectContainer"; + public static final String SCHEMA = "schema"; + public static final String SCRIPT = "script"; + public static final String SCRIPT_EXTENDED = "scriptExtended"; + private final WebSession session; private final DBSObject object; @@ -135,13 +149,13 @@ public String[] getFeatures() { List features = new ArrayList<>(); getObjectFeatures(object, features); if (object instanceof DBPDataSourceContainer) { - features.add("dataSource"); + features.add(DATA_SOURCE); DBPDataSourceContainer dbpDataSourceContainer = (DBPDataSourceContainer) this.object; if (dbpDataSourceContainer.isConnected()) { - features.add("dataSourceConnected"); + features.add(DATA_SOURCE_CONNECTED); } if (dbpDataSourceContainer.isTemporary()) { - features.add("dataSourceTemporary"); + features.add(DATA_SOURCE_TEMPORARY); } if (dbpDataSourceContainer.isConnected()) { DBPDataSource dataSource = dbpDataSourceContainer.getDataSource(); @@ -154,24 +168,24 @@ public String[] getFeatures() { } private static void getObjectFeatures(DBSObject object, List features) { - if (object instanceof DBPScriptObject) features.add("script"); - if (object instanceof DBPScriptObjectExt) features.add("scriptExtended"); + if (object instanceof DBPScriptObject) features.add(SCRIPT); + if (object instanceof DBPScriptObjectExt) features.add(SCRIPT_EXTENDED); if (object instanceof DBSDataContainer) { - features.add("dataContainer"); - if (((DBSDataContainer) object).isFeatureSupported("data.filter")) { - features.add("dataWithFilter"); + features.add(DATA_CONTAINER); + if (((DBSDataContainer) object).isFeatureSupported(DBSDataContainer.FEATURE_DATA_FILTER)) { + features.add(CONTAINS_DATA_FILTER); } } - if (object instanceof DBSDataManipulator) features.add("dataManipulator"); - if (object instanceof DBSEntity) features.add("entity"); - if (object instanceof DBSSchema) features.add("schema"); - if (object instanceof DBSCatalog) features.add("catalog"); + if (object instanceof DBSDataManipulator) features.add(DATA_MANIPULATOR); + if (object instanceof DBSEntity) features.add(ENTITY); + if (object instanceof DBSSchema) features.add(SCHEMA); + if (object instanceof DBSCatalog) features.add(CATALOG); if (object instanceof DBSObjectContainer) { - features.add("objectContainer"); + features.add(OBJECT_CONTAINER); try { Class childType = ((DBSObjectContainer) object).getPrimaryChildType(null); if (DBSEntity.class.isAssignableFrom(childType)) { - features.add("entityContainer"); + features.add(ENTITY_CONTAINER); } } catch (Exception e) { log.error(e); From 99dc3321189bc20f9b456187f810c4d43a2f4074 Mon Sep 17 00:00:00 2001 From: Ainur Yagudin Date: Thu, 3 Mar 2022 10:57:38 +0300 Subject: [PATCH 4/8] CB-1332 add features to data container --- .../navigator/WebDatabaseObjectInfo.java | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java index ddb98dc10f5..6a4f9dbf458 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java @@ -40,19 +40,19 @@ public class WebDatabaseObjectInfo { private static final Log log = Log.getLog(WebDatabaseObjectInfo.class); - public static final String CATALOG = "catalog"; - public static final String CONTAINS_DATA_FILTER = "containsDataFilter"; - public static final String DATA_CONTAINER = "dataContainer"; - public static final String DATA_MANIPULATOR = "dataManipulator"; - public static final String DATA_SOURCE = "dataSource"; - public static final String DATA_SOURCE_CONNECTED = "dataSourceConnected"; - public static final String DATA_SOURCE_TEMPORARY = "dataSourceTemporary"; - public static final String ENTITY = "entity"; - public static final String ENTITY_CONTAINER = "entityContainer"; - public static final String OBJECT_CONTAINER = "objectContainer"; - public static final String SCHEMA = "schema"; - public static final String SCRIPT = "script"; - public static final String SCRIPT_EXTENDED = "scriptExtended"; + public static final String OBJECT_FEATURE_CATALOG = "catalog"; + public static final String OBJECT_FEATURE_CONTAINS_DATA_FILTER = "containsDataFilter"; + public static final String OBJECT_FEATURE_DATA_CONTAINER = "dataContainer"; + public static final String OBJECT_FEATURE_DATA_MANIPULATOR = "dataManipulator"; + public static final String OBJECT_FEATURE_DATA_SOURCE = "dataSource"; + public static final String OBJECT_FEATURE_DATA_SOURCE_CONNECTED = "dataSourceConnected"; + public static final String OBJECT_FEATURE_DATA_SOURCE_TEMPORARY = "dataSourceTemporary"; + public static final String OBJECT_FEATURE_ENTITY = "entity"; + public static final String OBJECT_FEATURE_ENTITY_CONTAINER = "entityContainer"; + public static final String OBJECT_FEATURE_OBJECT_CONTAINER = "objectContainer"; + public static final String OBJECT_FEATURE_SCHEMA = "schema"; + public static final String OBJECT_FEATURE_SCRIPT = "script"; + public static final String OBJECT_FEATURE_SCRIPT_EXTENDED = "scriptExtended"; private final WebSession session; private final DBSObject object; @@ -149,13 +149,13 @@ public String[] getFeatures() { List features = new ArrayList<>(); getObjectFeatures(object, features); if (object instanceof DBPDataSourceContainer) { - features.add(DATA_SOURCE); + features.add(OBJECT_FEATURE_DATA_SOURCE); DBPDataSourceContainer dbpDataSourceContainer = (DBPDataSourceContainer) this.object; if (dbpDataSourceContainer.isConnected()) { - features.add(DATA_SOURCE_CONNECTED); + features.add(OBJECT_FEATURE_DATA_SOURCE_CONNECTED); } if (dbpDataSourceContainer.isTemporary()) { - features.add(DATA_SOURCE_TEMPORARY); + features.add(OBJECT_FEATURE_DATA_SOURCE_TEMPORARY); } if (dbpDataSourceContainer.isConnected()) { DBPDataSource dataSource = dbpDataSourceContainer.getDataSource(); @@ -168,24 +168,24 @@ public String[] getFeatures() { } private static void getObjectFeatures(DBSObject object, List features) { - if (object instanceof DBPScriptObject) features.add(SCRIPT); - if (object instanceof DBPScriptObjectExt) features.add(SCRIPT_EXTENDED); + if (object instanceof DBPScriptObject) features.add(OBJECT_FEATURE_SCRIPT); + if (object instanceof DBPScriptObjectExt) features.add(OBJECT_FEATURE_SCRIPT_EXTENDED); if (object instanceof DBSDataContainer) { - features.add(DATA_CONTAINER); + features.add(OBJECT_FEATURE_DATA_CONTAINER); if (((DBSDataContainer) object).isFeatureSupported(DBSDataContainer.FEATURE_DATA_FILTER)) { - features.add(CONTAINS_DATA_FILTER); + features.add(OBJECT_FEATURE_CONTAINS_DATA_FILTER); } } - if (object instanceof DBSDataManipulator) features.add(DATA_MANIPULATOR); - if (object instanceof DBSEntity) features.add(ENTITY); - if (object instanceof DBSSchema) features.add(SCHEMA); - if (object instanceof DBSCatalog) features.add(CATALOG); + if (object instanceof DBSDataManipulator) features.add(OBJECT_FEATURE_DATA_MANIPULATOR); + if (object instanceof DBSEntity) features.add(OBJECT_FEATURE_ENTITY); + if (object instanceof DBSSchema) features.add(OBJECT_FEATURE_SCHEMA); + if (object instanceof DBSCatalog) features.add(OBJECT_FEATURE_CATALOG); if (object instanceof DBSObjectContainer) { - features.add(OBJECT_CONTAINER); + features.add(OBJECT_FEATURE_OBJECT_CONTAINER); try { Class childType = ((DBSObjectContainer) object).getPrimaryChildType(null); if (DBSEntity.class.isAssignableFrom(childType)) { - features.add(ENTITY_CONTAINER); + features.add(OBJECT_FEATURE_ENTITY_CONTAINER); } } catch (Exception e) { log.error(e); From 68b0108c9c158b0904ba2db8e6cbb7951b8132d5 Mon Sep 17 00:00:00 2001 From: Ainur Yagudin Date: Thu, 3 Mar 2022 11:06:28 +0300 Subject: [PATCH 5/8] CB-1332 add features to data container --- .../cloudbeaver/service/navigator/WebDatabaseObjectInfo.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java index 6a4f9dbf458..783c57bfd82 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java @@ -41,8 +41,8 @@ public class WebDatabaseObjectInfo { private static final Log log = Log.getLog(WebDatabaseObjectInfo.class); public static final String OBJECT_FEATURE_CATALOG = "catalog"; - public static final String OBJECT_FEATURE_CONTAINS_DATA_FILTER = "containsDataFilter"; public static final String OBJECT_FEATURE_DATA_CONTAINER = "dataContainer"; + public static final String OBJECT_FEATURE_DATA_CONTAINER_SUPPORTS_FILTERS = "dataContainerSupportsFilters"; public static final String OBJECT_FEATURE_DATA_MANIPULATOR = "dataManipulator"; public static final String OBJECT_FEATURE_DATA_SOURCE = "dataSource"; public static final String OBJECT_FEATURE_DATA_SOURCE_CONNECTED = "dataSourceConnected"; @@ -173,7 +173,7 @@ private static void getObjectFeatures(DBSObject object, List features) { if (object instanceof DBSDataContainer) { features.add(OBJECT_FEATURE_DATA_CONTAINER); if (((DBSDataContainer) object).isFeatureSupported(DBSDataContainer.FEATURE_DATA_FILTER)) { - features.add(OBJECT_FEATURE_CONTAINS_DATA_FILTER); + features.add(OBJECT_FEATURE_DATA_CONTAINER_SUPPORTS_FILTERS); } } if (object instanceof DBSDataManipulator) features.add(OBJECT_FEATURE_DATA_MANIPULATOR); From b262586f9f0f7ea37e1b3b8fb569ac4267edfd6b Mon Sep 17 00:00:00 2001 From: Ainur Yagudin Date: Thu, 3 Mar 2022 11:07:35 +0300 Subject: [PATCH 6/8] CB-1332 add features to data container --- .../io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java index 783c57bfd82..d54ba8ef3b7 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java @@ -42,7 +42,7 @@ public class WebDatabaseObjectInfo { public static final String OBJECT_FEATURE_CATALOG = "catalog"; public static final String OBJECT_FEATURE_DATA_CONTAINER = "dataContainer"; - public static final String OBJECT_FEATURE_DATA_CONTAINER_SUPPORTS_FILTERS = "dataContainerSupportsFilters"; + public static final String OBJECT_FEATURE_DATA_CONTAINER_SUPPORTS_FILTERS = "supportsDataFilter"; public static final String OBJECT_FEATURE_DATA_MANIPULATOR = "dataManipulator"; public static final String OBJECT_FEATURE_DATA_SOURCE = "dataSource"; public static final String OBJECT_FEATURE_DATA_SOURCE_CONNECTED = "dataSourceConnected"; From e9eba421cd48c13329be9f67cc32d8b08ca8eb66 Mon Sep 17 00:00:00 2001 From: Ainur Yagudin Date: Thu, 3 Mar 2022 11:19:00 +0300 Subject: [PATCH 7/8] CB-1097 fix bug with data types --- .../io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java index d54ba8ef3b7..096a295112b 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java @@ -177,7 +177,7 @@ private static void getObjectFeatures(DBSObject object, List features) { } } if (object instanceof DBSDataManipulator) features.add(OBJECT_FEATURE_DATA_MANIPULATOR); - if (object instanceof DBSEntity) features.add(OBJECT_FEATURE_ENTITY); + if (object instanceof DBSEntity && object instanceof DBSDataType == false) features.add(OBJECT_FEATURE_ENTITY); if (object instanceof DBSSchema) features.add(OBJECT_FEATURE_SCHEMA); if (object instanceof DBSCatalog) features.add(OBJECT_FEATURE_CATALOG); if (object instanceof DBSObjectContainer) { From 8ecd2abb98dfdf86a91a0d874e83605c39d5bfde Mon Sep 17 00:00:00 2001 From: Ainur Yagudin Date: Thu, 3 Mar 2022 11:25:11 +0300 Subject: [PATCH 8/8] CB-1097 fix bug with data types --- .../io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java index 096a295112b..cdb4620acf8 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/navigator/WebDatabaseObjectInfo.java @@ -177,7 +177,7 @@ private static void getObjectFeatures(DBSObject object, List features) { } } if (object instanceof DBSDataManipulator) features.add(OBJECT_FEATURE_DATA_MANIPULATOR); - if (object instanceof DBSEntity && object instanceof DBSDataType == false) features.add(OBJECT_FEATURE_ENTITY); + if (object instanceof DBSEntity && object instanceof DBSDataType == false) features.add(OBJECT_FEATURE_ENTITY); if (object instanceof DBSSchema) features.add(OBJECT_FEATURE_SCHEMA); if (object instanceof DBSCatalog) features.add(OBJECT_FEATURE_CATALOG); if (object instanceof DBSObjectContainer) {