Skip to content

Commit

Permalink
refine sdmx helper code filtering and ts count for v3 providers
Browse files Browse the repository at this point in the history
  • Loading branch information
amattioc committed Apr 4, 2024
1 parent 5945715 commit 5a9c4a6
Show file tree
Hide file tree
Showing 14 changed files with 322 additions and 213 deletions.
2 changes: 1 addition & 1 deletion BUILD
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20240321-1536
20240404-1636
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@
*/
package it.bancaditalia.oss.sdmx.api;

import it.bancaditalia.oss.sdmx.exceptions.SdmxException;

import java.util.List;
import java.util.Map;

import it.bancaditalia.oss.sdmx.exceptions.SdmxException;

/**
* @author Attilio Mattiocco
*
Expand Down Expand Up @@ -148,7 +148,7 @@ public List<PortableTimeSeries<Double>> getTimeSeries(Dataflow dataflow, DataFlo
* @param filter the filter
* @throws SdmxException
*/
public Integer getAvailableTimeSeriesNumber(Dataflow df, String filter) throws SdmxException;
public Map<String, Integer> getAvailableTimeSeriesNumber(Dataflow df, String filter) throws SdmxException;

/**
* <p>Checks id this is a secure provider, needing credentials. To be used
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,7 @@
*/
package it.bancaditalia.oss.sdmx.client;

import static it.bancaditalia.oss.sdmx.api.SDMXVersion.V3;
import static it.bancaditalia.oss.sdmx.util.QueryRunner.runQuery;

import java.net.URL;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;

import it.bancaditalia.oss.sdmx.api.DataFlowStructure;
import it.bancaditalia.oss.sdmx.api.Dataflow;
import it.bancaditalia.oss.sdmx.api.Dimension;
import it.bancaditalia.oss.sdmx.api.Message;
import it.bancaditalia.oss.sdmx.api.PortableTimeSeries;
import it.bancaditalia.oss.sdmx.api.*;
import it.bancaditalia.oss.sdmx.event.DataFooterMessageEvent;
import it.bancaditalia.oss.sdmx.event.RestSdmxEvent;
import it.bancaditalia.oss.sdmx.exceptions.SdmxException;
Expand All @@ -44,6 +32,14 @@
import it.bancaditalia.oss.sdmx.parser.v30.SeriesCountParser;
import it.bancaditalia.oss.sdmx.util.QueryRunner;

import java.net.URL;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;

import static it.bancaditalia.oss.sdmx.api.SDMXVersion.V3;
import static it.bancaditalia.oss.sdmx.util.QueryRunner.runQuery;

/**
* @author Attilio Mattiocco
*
Expand Down Expand Up @@ -81,7 +77,7 @@ public Map<String, List<String>> getAvailableCubeRegion(Dataflow dataflow, Strin
}

@Override
public Integer getAvailableTimeSeriesNumber(Dataflow dataflow, String filter) throws SdmxException {
public Map<String, Integer> getAvailableTimeSeriesNumber(Dataflow dataflow, String filter) throws SdmxException {
URL query = buildAvailabilityQuery(dataflow, filter, "exact");
return runQuery(new SeriesCountParser(), query, handleHttpHeaders("application/vnd.sdmx.structure+xml;version=2.1"));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,15 @@
*/
package it.bancaditalia.oss.sdmx.client;

import static it.bancaditalia.oss.sdmx.api.SDMXVersion.V2;
import static it.bancaditalia.oss.sdmx.util.QueryRunner.runQuery;
import static java.util.stream.Collectors.joining;
import it.bancaditalia.oss.sdmx.api.*;
import it.bancaditalia.oss.sdmx.event.DataFooterMessageEvent;
import it.bancaditalia.oss.sdmx.event.RestSdmxEvent;
import it.bancaditalia.oss.sdmx.exceptions.SdmxException;
import it.bancaditalia.oss.sdmx.exceptions.SdmxInvalidParameterException;
import it.bancaditalia.oss.sdmx.exceptions.SdmxXmlContentException;
import it.bancaditalia.oss.sdmx.parser.v21.*;
import it.bancaditalia.oss.sdmx.util.Configuration;
import it.bancaditalia.oss.sdmx.util.QueryRunner;

import java.net.URL;
import java.util.HashMap;
Expand All @@ -32,27 +38,9 @@
import java.util.logging.Level;
import java.util.logging.Logger;

import it.bancaditalia.oss.sdmx.api.Codelist;
import it.bancaditalia.oss.sdmx.api.DataFlowStructure;
import it.bancaditalia.oss.sdmx.api.Dataflow;
import it.bancaditalia.oss.sdmx.api.GenericSDMXClient;
import it.bancaditalia.oss.sdmx.api.Message;
import it.bancaditalia.oss.sdmx.api.PortableTimeSeries;
import it.bancaditalia.oss.sdmx.api.SDMXReference;
import it.bancaditalia.oss.sdmx.api.SDMXVersion;
import it.bancaditalia.oss.sdmx.event.DataFooterMessageEvent;
import it.bancaditalia.oss.sdmx.event.RestSdmxEvent;
import it.bancaditalia.oss.sdmx.exceptions.SdmxException;
import it.bancaditalia.oss.sdmx.exceptions.SdmxInvalidParameterException;
import it.bancaditalia.oss.sdmx.exceptions.SdmxXmlContentException;
import it.bancaditalia.oss.sdmx.parser.v21.CodelistParser;
import it.bancaditalia.oss.sdmx.parser.v21.CompactDataParser;
import it.bancaditalia.oss.sdmx.parser.v21.DataParsingResult;
import it.bancaditalia.oss.sdmx.parser.v21.DataStructureParser;
import it.bancaditalia.oss.sdmx.parser.v21.DataflowParser;
import it.bancaditalia.oss.sdmx.parser.v21.Sdmx21Queries;
import it.bancaditalia.oss.sdmx.util.Configuration;
import it.bancaditalia.oss.sdmx.util.QueryRunner;
import static it.bancaditalia.oss.sdmx.api.SDMXVersion.V2;
import static it.bancaditalia.oss.sdmx.util.QueryRunner.runQuery;
import static java.util.stream.Collectors.joining;

/**
* @author Attilio Mattiocco
Expand Down Expand Up @@ -153,7 +141,7 @@ public Map<String, List<String>> getAvailableCubeRegion(Dataflow dataflow, Strin
}

@Override
public Integer getAvailableTimeSeriesNumber(Dataflow dataflow, String filter) throws SdmxException {
public Map<String, Integer> getAvailableTimeSeriesNumber(Dataflow dataflow, String filter) throws SdmxException {
throw new SdmxInvalidParameterException("This method can only be called on SDMX V3 providers.");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,43 +20,22 @@
*/
package it.bancaditalia.oss.sdmx.client;

import static it.bancaditalia.oss.sdmx.api.SDMXVersion.V2;
import it.bancaditalia.oss.sdmx.api.*;
import it.bancaditalia.oss.sdmx.client.custom.RestSdmx20Client;
import it.bancaditalia.oss.sdmx.exceptions.*;
import it.bancaditalia.oss.sdmx.util.Configuration;
import it.bancaditalia.oss.sdmx.util.LoginDialog;

import javax.swing.*;
import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.Map.Entry;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.logging.Logger;
import java.util.stream.Collectors;

import javax.swing.JFrame;

import it.bancaditalia.oss.sdmx.api.Codelist;
import it.bancaditalia.oss.sdmx.api.DataFlowStructure;
import it.bancaditalia.oss.sdmx.api.Dataflow;
import it.bancaditalia.oss.sdmx.api.Dimension;
import it.bancaditalia.oss.sdmx.api.GenericSDMXClient;
import it.bancaditalia.oss.sdmx.api.PortableDataSet;
import it.bancaditalia.oss.sdmx.api.PortableTimeSeries;
import it.bancaditalia.oss.sdmx.api.SDMXReference;
import it.bancaditalia.oss.sdmx.api.SDMXVersion;
import it.bancaditalia.oss.sdmx.api.SdmxAttribute;
import it.bancaditalia.oss.sdmx.client.custom.RestSdmx20Client;
import it.bancaditalia.oss.sdmx.exceptions.DataStructureException;
import it.bancaditalia.oss.sdmx.exceptions.SdmxException;
import it.bancaditalia.oss.sdmx.exceptions.SdmxInvalidParameterException;
import it.bancaditalia.oss.sdmx.exceptions.SdmxUnknownProviderException;
import it.bancaditalia.oss.sdmx.exceptions.SdmxXmlContentException;
import it.bancaditalia.oss.sdmx.util.Configuration;
import it.bancaditalia.oss.sdmx.util.LoginDialog;
import static it.bancaditalia.oss.sdmx.api.SDMXVersion.V2;

/**
* <p>
Expand Down Expand Up @@ -324,7 +303,7 @@ public static Map<String, Map<String, String>> filterCodes(String provider, Stri

}

public static Integer getSeriesCount(String provider, String dataflow, String filter) throws SdmxException
public static Map<String, Integer> getSeriesCount(String provider, String dataflow, String filter) throws SdmxException
{
if (provider == null || provider.trim().isEmpty())
{
Expand Down
47 changes: 47 additions & 0 deletions JAVA/src/main/java/it/bancaditalia/oss/sdmx/client/custom/UIS.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/* Copyright 2010,2014 Bank Of Italy
*
* Licensed under the EUPL, Version 1.1 or - as soon they
* will be approved by the European Commission - subsequent
* versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the
* Licence.
* You may obtain a copy of the Licence at:
*
*
* http://ec.europa.eu/idabc/eupl
*
* Unless required by applicable law or agreed to in
* writing, software distributed under the Licence is
* distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the Licence for the specific language governing
* permissions and limitations under the Licence.
*/
package it.bancaditalia.oss.sdmx.client.custom;

import java.net.URISyntaxException;
import java.net.URL;

import it.bancaditalia.oss.sdmx.api.Dataflow;
import it.bancaditalia.oss.sdmx.client.Provider;
import it.bancaditalia.oss.sdmx.exceptions.SdmxException;

/**
* @author Attilio Mattiocco
*
*/
public class UIS extends DotStat
{

public UIS(Provider p) throws URISyntaxException
{
super(p);
}

@Override
protected URL buildDataQuery(Dataflow dataflow, String resource, String startTime, String endTime, boolean serieskeysonly, String updatedAfter, boolean includeHistory) throws SdmxException
{
return super.buildDataQuery(dataflow, resource + "/all", startTime, endTime, serieskeysonly, null, false);
}
}
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
package it.bancaditalia.oss.sdmx.helper;

import javax.swing.table.AbstractTableModel;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.logging.Logger;

import javax.swing.table.AbstractTableModel;

public final class CheckboxListTableModel<T> extends AbstractTableModel
{
private static final long serialVersionUID = 1L;
@SuppressWarnings("unused")
private static final Logger LOGGER = Logger.getLogger(CheckboxListTableModel.class.getName());

private Object items[][] = new Object[0][];
private Object[][] items = new Object[0][];

public void setItems(Map<String, String> itemMap)
{
Expand Down
Loading

0 comments on commit 5a9c4a6

Please sign in to comment.