diff --git a/xmla/bridge/src/main/java/org/eclipse/daanse/olap/xmla/bridge/discover/DelegatingDiscoverService.java b/xmla/bridge/src/main/java/org/eclipse/daanse/olap/xmla/bridge/discover/DelegatingDiscoverService.java index 3bd93ab..e2d44f3 100644 --- a/xmla/bridge/src/main/java/org/eclipse/daanse/olap/xmla/bridge/discover/DelegatingDiscoverService.java +++ b/xmla/bridge/src/main/java/org/eclipse/daanse/olap/xmla/bridge/discover/DelegatingDiscoverService.java @@ -19,7 +19,6 @@ import org.eclipse.daanse.olap.xmla.bridge.ContextGroupXmlaServiceConfig; import org.eclipse.daanse.olap.xmla.bridge.ContextListSupplyer; import org.eclipse.daanse.xmla.api.RequestMetaData; -import org.eclipse.daanse.xmla.api.UserRolePrincipal; import org.eclipse.daanse.xmla.api.discover.DiscoverService; import org.eclipse.daanse.xmla.api.discover.dbschema.catalogs.DbSchemaCatalogsRequest; import org.eclipse.daanse.xmla.api.discover.dbschema.catalogs.DbSchemaCatalogsResponseRow; @@ -35,6 +34,8 @@ import org.eclipse.daanse.xmla.api.discover.dbschema.tables.DbSchemaTablesResponseRow; import org.eclipse.daanse.xmla.api.discover.dbschema.tablesinfo.DbSchemaTablesInfoRequest; import org.eclipse.daanse.xmla.api.discover.dbschema.tablesinfo.DbSchemaTablesInfoResponseRow; +import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataRequest; +import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataResponseRow; import org.eclipse.daanse.xmla.api.discover.discover.datasources.DiscoverDataSourcesRequest; import org.eclipse.daanse.xmla.api.discover.discover.datasources.DiscoverDataSourcesResponseRow; import org.eclipse.daanse.xmla.api.discover.discover.enumerators.DiscoverEnumeratorsRequest; @@ -268,4 +269,11 @@ public List xmlMetaData(DiscoverXmlMetaDataReque return otherSchemaService.xmlMetaData(request, metaData); } + @Override + public List csdlMetaData(DiscoverCsdlMetaDataRequest request, + RequestMetaData metaData) { + + return otherSchemaService.csdlMetaData(request, metaData); + } + } diff --git a/xmla/bridge/src/main/java/org/eclipse/daanse/olap/xmla/bridge/discover/OtherDiscoverService.java b/xmla/bridge/src/main/java/org/eclipse/daanse/olap/xmla/bridge/discover/OtherDiscoverService.java index 5e8d3e9..3ce92af 100644 --- a/xmla/bridge/src/main/java/org/eclipse/daanse/olap/xmla/bridge/discover/OtherDiscoverService.java +++ b/xmla/bridge/src/main/java/org/eclipse/daanse/olap/xmla/bridge/discover/OtherDiscoverService.java @@ -49,6 +49,7 @@ import org.eclipse.daanse.xmla.api.discover.dbschema.tables.DbSchemaTablesRequest; import org.eclipse.daanse.xmla.api.discover.dbschema.tablesinfo.DbSchemaTablesInfoRequest; import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataRequest; +import org.eclipse.daanse.xmla.api.discover.discover.csdlmetadata.DiscoverCsdlMetaDataResponseRow; import org.eclipse.daanse.xmla.api.discover.discover.datasources.DiscoverDataSourcesRequest; import org.eclipse.daanse.xmla.api.discover.discover.datasources.DiscoverDataSourcesResponseRow; import org.eclipse.daanse.xmla.api.discover.discover.enumerators.DiscoverEnumeratorsRequest; @@ -77,6 +78,7 @@ import org.eclipse.daanse.xmla.api.discover.mdschema.properties.MdSchemaPropertiesRequest; import org.eclipse.daanse.xmla.api.discover.mdschema.sets.MdSchemaSetsRequest; import org.eclipse.daanse.xmla.api.xmla.Restriction; +import org.eclipse.daanse.xmla.model.record.discover.discover.csdlmetadata.DiscoverCsdlMetaDataResponseRowR; import org.eclipse.daanse.xmla.model.record.discover.discover.datasources.DiscoverDataSourcesResponseRowR; import org.eclipse.daanse.xmla.model.record.discover.discover.enumerators.DiscoverEnumeratorsResponseRowR; import org.eclipse.daanse.xmla.model.record.discover.discover.keywords.DiscoverKeywordsResponseRowR; @@ -111,6 +113,18 @@ public class OtherDiscoverService { 1804890536 """; + private static final String csdlMd = """ + + + + %s + + + + """; private static List> classes = List.of( // DbSchema @@ -291,7 +305,7 @@ public List discoverSchemaRowsets(DiscoverSche } } result.add(new DiscoverSchemaRowsetsResponseRowR(o.name(), Optional.ofNullable(o.guid()), - Optional.ofNullable(restrictions), Optional.of((desc == null) ? "" : desc), Optional.empty())); + Optional.ofNullable(restrictions), Optional.ofNullable(desc), Optional.of(7l))); } } return result; @@ -331,6 +345,34 @@ public List xmlMetaData(DiscoverXmlMetaDataReque return result; } + public List csdlMetaData(DiscoverCsdlMetaDataRequest request, + RequestMetaData metaData) { + List result = new ArrayList<>(); + Optional catalogName = request.restrictions().catalogName(); + if (!catalogName.isPresent()) { + catalogName = request.properties().catalog(); + } + if (catalogName.isPresent()) { + Optional oCatalog = contextsListSupplyer.tryGetFirstByName(catalogName.get(), metaData.sessionId()); + if (oCatalog.isPresent()) { + Catalog catalog = oCatalog.get(); + + if (catalog != null) { + //TODO implement CsdlMetaDataResponse + result.add(new DiscoverCsdlMetaDataResponseRowR(String.format(csdlMd, catalog.getName()))); + } + } + } else { + List cs = contextsListSupplyer.get(metaData.sessionId()); + if (cs != null) { + Catalog catalog = cs.get(0); + //TODO implement CsdlMetaDataResponse + result.add(new DiscoverCsdlMetaDataResponseRowR(String.format(csdlMd, catalog.getName()))); + } + } + return result; + } + private String getOperationDescription(String name) { switch (name) { case "DBSCHEMA_CATALOGS":