From 4355feb81f29313976e0b30a3765072f4503751e Mon Sep 17 00:00:00 2001 From: "fabio.sinibaldi" Date: Tue, 10 Jul 2018 10:56:16 +0000 Subject: [PATCH] Changing subsystem git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/accounting/accounting-summary-access@169733 82a268e6-3cf1-43bd-a215-b396298e98cf --- .classpath | 37 ++ .project | 36 ++ .settings/org.eclipse.core.resources.prefs | 6 + .settings/org.eclipse.jdt.core.prefs | 8 + .settings/org.eclipse.m2e.core.prefs | 4 + .settings/org.eclipse.wst.common.component | 6 + ....eclipse.wst.common.project.facet.core.xml | 5 + distro/LICENSE | 1 + distro/README | 65 ++ distro/changelog.xml | 5 + distro/descriptor.xml | 30 + distro/profile.xml | 29 + pom.xml | 102 ++++ .../summary/access/AccountingDao.java | 40 ++ .../summary/access/ParameterException.java | 37 ++ .../access/impl/AccountingDaoImpl.java | 288 +++++++++ .../access/impl/BasicConnectionManager.java | 93 +++ .../access/impl/BasicContextTreeProvider.java | 23 + .../access/impl/ConnectionManager.java | 11 + .../access/impl/ContextTreeProvider.java | 12 + .../summary/access/impl/DBStructure.java | 26 + .../summary/access/impl/Queries.java | 155 +++++ .../access/model/MeasureResolution.java | 19 + .../summary/access/model/Record.java | 24 + .../summary/access/model/Report.java | 34 ++ .../summary/access/model/ReportElement.java | 66 ++ .../summary/access/model/ScopeDescriptor.java | 67 ++ .../summary/access/model/Series.java | 35 ++ .../access/model/internal/Dimension.java | 39 ++ .../access/model/update/AccountingRecord.java | 23 + .../access/model/update/UpdateReport.java | 21 + .../access/test/DummyContextTreeProvider.java | 22 + .../summary/access/test/SimpleTest.java | 47 ++ .../summary/access/test/TokenSetter.java | 55 ++ .../summary/access/utils/Importer.java | 163 +++++ src/test/resources/sql/initDb.sql | 0 ...-summary-access-0.0.1-SNAPSHOT-javadoc.jar | Bin 0 -> 141945 bytes ...-summary-access-0.0.1-SNAPSHOT-sources.jar | Bin 0 -> 14483 bytes ...counting-summary-access-0.0.1-SNAPSHOT.jar | Bin 0 -> 30104 bytes target/apidocs/allclasses-frame.html | 39 ++ target/apidocs/allclasses-noframe.html | 39 ++ target/apidocs/constant-values.html | 263 ++++++++ target/apidocs/deprecated-list.html | 126 ++++ target/apidocs/help-doc.html | 231 +++++++ target/apidocs/index-all.html | 401 ++++++++++++ target/apidocs/index.html | 76 +++ .../summary/access/AccountingDao.html | 286 +++++++++ .../summary/access/ParameterException.html | 320 ++++++++++ .../access/class-use/AccountingDao.html | 192 ++++++ .../access/class-use/ParameterException.html | 198 ++++++ .../access/impl/AccountingDaoImpl.html | 347 +++++++++++ .../access/impl/BasicConnectionManager.html | 285 +++++++++ .../access/impl/BasicContextTreeProvider.html | 285 +++++++++ .../access/impl/ConnectionManager.html | 232 +++++++ .../access/impl/ContextTreeProvider.html | 232 +++++++ .../access/impl/DBStructure.CONTEXTS.html | 317 ++++++++++ .../access/impl/DBStructure.DIMENSIONS.html | 351 +++++++++++ .../access/impl/DBStructure.Measure.html | 351 +++++++++++ .../summary/access/impl/DBStructure.html | 266 ++++++++ .../impl/PortalContextTreeProvider.html | 282 +++++++++ .../summary/access/impl/Queries.html | 345 +++++++++++ .../impl/class-use/AccountingDaoImpl.html | 126 ++++ .../class-use/BasicConnectionManager.html | 126 ++++ .../class-use/BasicContextTreeProvider.html | 126 ++++ .../impl/class-use/ConnectionManager.html | 178 ++++++ .../impl/class-use/ContextTreeProvider.html | 217 +++++++ .../impl/class-use/DBStructure.CONTEXTS.html | 126 ++++ .../class-use/DBStructure.DIMENSIONS.html | 126 ++++ .../impl/class-use/DBStructure.Measure.html | 126 ++++ .../access/impl/class-use/DBStructure.html | 126 ++++ .../class-use/PortalContextTreeProvider.html | 126 ++++ .../access/impl/class-use/Queries.html | 126 ++++ .../summary/access/impl/package-frame.html | 34 ++ .../summary/access/impl/package-summary.html | 195 ++++++ .../summary/access/impl/package-tree.html | 152 +++++ .../summary/access/impl/package-use.html | 181 ++++++ .../summary/access/model/Dimension.html | 239 ++++++++ .../access/model/MeasureResolution.html | 332 ++++++++++ .../summary/access/model/Record.html | 248 ++++++++ .../summary/access/model/Report.html | 286 +++++++++ .../summary/access/model/ReportElement.html | 286 +++++++++ .../summary/access/model/ScopeDescriptor.html | 316 ++++++++++ .../summary/access/model/Series.html | 286 +++++++++ .../access/model/class-use/Dimension.html | 126 ++++ .../model/class-use/MeasureResolution.html | 246 ++++++++ .../access/model/class-use/Record.html | 126 ++++ .../access/model/class-use/Report.html | 194 ++++++ .../access/model/class-use/ReportElement.html | 126 ++++ .../model/class-use/ScopeDescriptor.html | 257 ++++++++ .../access/model/class-use/Series.html | 126 ++++ .../access/model/internal/Dimension.html | 239 ++++++++ .../model/internal/class-use/Dimension.html | 126 ++++ .../access/model/internal/package-frame.html | 21 + .../model/internal/package-summary.html | 144 +++++ .../access/model/internal/package-tree.html | 139 +++++ .../access/model/internal/package-use.html | 126 ++++ .../summary/access/model/package-frame.html | 29 + .../summary/access/model/package-summary.html | 175 ++++++ .../summary/access/model/package-tree.html | 155 +++++ .../summary/access/model/package-use.html | 209 +++++++ .../summary/access/package-frame.html | 25 + .../summary/access/package-summary.html | 159 +++++ .../summary/access/package-tree.html | 151 +++++ .../summary/access/package-use.html | 184 ++++++ target/apidocs/overview-frame.html | 25 + target/apidocs/overview-summary.html | 152 +++++ target/apidocs/overview-tree.html | 183 ++++++ target/apidocs/package-list | 4 + target/apidocs/script.js | 30 + target/apidocs/serialized-form.html | 286 +++++++++ target/apidocs/stylesheet.css | 574 ++++++++++++++++++ .../javadoc-options-javadoc-resources.xml | 10 + target/javadoc-bundle-options/package-list | 203 +++++++ target/maven-archiver/pom.properties | 5 + .../compile/default-compile/createdFiles.lst | 1 + .../compile/default-compile/inputFiles.lst | 17 + .../default-testCompile/createdFiles.lst | 0 .../default-testCompile/inputFiles.lst | 4 + 118 files changed, 15759 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 .settings/org.eclipse.wst.common.component create mode 100644 .settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 distro/LICENSE create mode 100644 distro/README create mode 100644 distro/changelog.xml create mode 100644 distro/descriptor.xml create mode 100644 distro/profile.xml create mode 100644 pom.xml create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/AccountingDao.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/ParameterException.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/impl/AccountingDaoImpl.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/impl/BasicConnectionManager.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/impl/BasicContextTreeProvider.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/impl/ConnectionManager.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/impl/ContextTreeProvider.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/impl/DBStructure.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/impl/Queries.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/model/MeasureResolution.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/model/Record.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/model/Report.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/model/ReportElement.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/model/ScopeDescriptor.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/model/Series.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/model/internal/Dimension.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/model/update/AccountingRecord.java create mode 100644 src/main/java/org/gcube/data/access/accounting/summary/access/model/update/UpdateReport.java create mode 100644 src/test/java/org/gcube/data/access/accounting/summary/access/test/DummyContextTreeProvider.java create mode 100644 src/test/java/org/gcube/data/access/accounting/summary/access/test/SimpleTest.java create mode 100644 src/test/java/org/gcube/data/access/accounting/summary/access/test/TokenSetter.java create mode 100644 src/test/java/org/gcube/data/access/accounting/summary/access/utils/Importer.java create mode 100644 src/test/resources/sql/initDb.sql create mode 100644 target/accounting-summary-access-0.0.1-SNAPSHOT-javadoc.jar create mode 100644 target/accounting-summary-access-0.0.1-SNAPSHOT-sources.jar create mode 100644 target/accounting-summary-access-0.0.1-SNAPSHOT.jar create mode 100644 target/apidocs/allclasses-frame.html create mode 100644 target/apidocs/allclasses-noframe.html create mode 100644 target/apidocs/constant-values.html create mode 100644 target/apidocs/deprecated-list.html create mode 100644 target/apidocs/help-doc.html create mode 100644 target/apidocs/index-all.html create mode 100644 target/apidocs/index.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/AccountingDao.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/ParameterException.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/class-use/AccountingDao.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/class-use/ParameterException.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/AccountingDaoImpl.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/BasicConnectionManager.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/BasicContextTreeProvider.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/ConnectionManager.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/ContextTreeProvider.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.CONTEXTS.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.DIMENSIONS.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.Measure.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/PortalContextTreeProvider.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/Queries.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/AccountingDaoImpl.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/BasicConnectionManager.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/BasicContextTreeProvider.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/ConnectionManager.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/ContextTreeProvider.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.CONTEXTS.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.DIMENSIONS.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.Measure.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/PortalContextTreeProvider.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/Queries.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-frame.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-summary.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-tree.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-use.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/Dimension.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/MeasureResolution.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/Record.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/Report.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/ReportElement.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/ScopeDescriptor.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/Series.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Dimension.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/MeasureResolution.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Record.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Report.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/ReportElement.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/ScopeDescriptor.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Series.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/Dimension.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/class-use/Dimension.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-frame.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-summary.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-tree.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-use.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-frame.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-summary.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-tree.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-use.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/package-frame.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/package-summary.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/package-tree.html create mode 100644 target/apidocs/org/gcube/data/access/accounting/summary/access/package-use.html create mode 100644 target/apidocs/overview-frame.html create mode 100644 target/apidocs/overview-summary.html create mode 100644 target/apidocs/overview-tree.html create mode 100644 target/apidocs/package-list create mode 100644 target/apidocs/script.js create mode 100644 target/apidocs/serialized-form.html create mode 100644 target/apidocs/stylesheet.css create mode 100644 target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml create mode 100644 target/javadoc-bundle-options/package-list create mode 100644 target/maven-archiver/pom.properties create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..71a86ec --- /dev/null +++ b/.classpath @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..6d662fd --- /dev/null +++ b/.project @@ -0,0 +1,36 @@ + + + accounting-summary-access + + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..29abf99 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding//src/test/resources=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..6e80039 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000..5fc41c1 --- /dev/null +++ b/.settings/org.eclipse.wst.common.component @@ -0,0 +1,6 @@ + + + + + + diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..fb95c45 --- /dev/null +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/distro/LICENSE b/distro/LICENSE new file mode 100644 index 0000000..2d9616a --- /dev/null +++ b/distro/LICENSE @@ -0,0 +1 @@ +${gcube.license} \ No newline at end of file diff --git a/distro/README b/distro/README new file mode 100644 index 0000000..b0de8fc --- /dev/null +++ b/distro/README @@ -0,0 +1,65 @@ +The gCube System - ${name} +-------------------------------------------------- + +${description} + + +${gcube.description} + +${gcube.funding} + + +Version +-------------------------------------------------- + +${version} (${buildDate}) + +Please see the file named "changelog.xml" in this directory for the release notes. + + + +Authors +-------------------------------------------------- + +* Fabio Sinibaldi (fabio.sinibaldi-AT-isti.cnr.it) Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" - CNR, Pisa (Italy). + +Maintainers +----------- + +* Fabio Sinibaldi (fabio.sinibaldi-AT-isti.cnr.it) Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" - CNR, Pisa (Italy). + + +Download information +-------------------------------------------------- + +Source code is available from SVN: + ${scm.url} + +Binaries can be downloaded from the gCube website: + ${gcube.website} + +Installation +-------------------------------------------------- + +Installation documentation is available on-line in the gCube Wiki: + ${gcube.wikiRoot}/Tabular_Data_Manager + +Documentation +-------------------------------------------------- + +Documentation is available on-line in the gCube Wiki: + ${gcube.wikiRoot}/SDI_Service + ${gcube.wikiRoot}/SDI_Service + + +Support +-------------------------------------------------- + +Bugs and support requests can be reported in the gCube issue tracking tool: + ${gcube.issueTracking} + + +Licensing +-------------------------------------------------- + +This software is licensed under the terms you may find in the file named "LICENSE" in this directory. \ No newline at end of file diff --git a/distro/changelog.xml b/distro/changelog.xml new file mode 100644 index 0000000..29a71cb --- /dev/null +++ b/distro/changelog.xml @@ -0,0 +1,5 @@ + + + First Release + + \ No newline at end of file diff --git a/distro/descriptor.xml b/distro/descriptor.xml new file mode 100644 index 0000000..dc46ade --- /dev/null +++ b/distro/descriptor.xml @@ -0,0 +1,30 @@ + + servicearchive + + tar.gz + + / + + + ${distroDirectory} + / + true + + README + LICENSE + changelog.xml + + 755 + true + + + + + target/${build.finalName}.${project.packaging} + /${artifactId} + + + \ No newline at end of file diff --git a/distro/profile.xml b/distro/profile.xml new file mode 100644 index 0000000..62d5fef --- /dev/null +++ b/distro/profile.xml @@ -0,0 +1,29 @@ + + + + Service + + ${description} + DataAccess + ${artifactId} + 1.0.0 + + + ${description} + ${artifactId} + ${version} + + ${groupId} + ${artifactId} + ${version} + + library + + ${build.finalName}.jar + + + + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..8921f64 --- /dev/null +++ b/pom.xml @@ -0,0 +1,102 @@ + + 4.0.0 + + org.gcube.tools + maven-parent + LATEST + + org.gcube.data.access + accounting-summary-access + 0.0.1-SNAPSHOT + Accounting Summary Access + Java library for accessing accounting summary data + + + + + org.gcube.distribution + gcube-bom + LATEST + pom + import + + + + + + ${project.basedir}/distro + http://svn.research-infrastructures.eu/d4science/gcube/trunk/data-access/${project.artifactId} + ${project.basedir}/src/test/resources/sql + + + + + + + + org.gcube.common + authorization-client + provided + + + org.gcube.common + common-authorization + provided + + + org.gcube.core + common-encryption + provided + + + + + + org.gcube.resources.discovery + ic-client + + + + + org.ancoron.postgresql + org.postgresql + 9.1.901.jdbc4.1-rc9 + + + + + + + org.projectlombok + lombok + 1.14.8 + + + + + + + + + junit + junit + 4.10 + test + + + + + + + + ch.qos.logback + logback-classic + 1.0.13 + test + + + + + + \ No newline at end of file diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/AccountingDao.java b/src/main/java/org/gcube/data/access/accounting/summary/access/AccountingDao.java new file mode 100644 index 0000000..efdb636 --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/AccountingDao.java @@ -0,0 +1,40 @@ +package org.gcube.data.access.accounting.summary.access; + +import java.sql.SQLException; +import java.util.Date; +import java.util.Set; + +import org.gcube.data.access.accounting.summary.access.impl.AccountingDaoImpl; +import org.gcube.data.access.accounting.summary.access.impl.ContextTreeProvider; +import org.gcube.data.access.accounting.summary.access.model.MeasureResolution; +import org.gcube.data.access.accounting.summary.access.model.Report; +import org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor; +import org.gcube.data.access.accounting.summary.access.model.internal.Dimension; +import org.gcube.data.access.accounting.summary.access.model.update.AccountingRecord; +import org.gcube.data.access.accounting.summary.access.model.update.UpdateReport; + +public interface AccountingDao { + + public static AccountingDao get() { + return new AccountingDaoImpl(); + } + + public static AccountingDao get(ContextTreeProvider provider) { + AccountingDaoImpl toReturn= new AccountingDaoImpl(); + toReturn.setTreeProvider(provider); + return toReturn; + } + + public ScopeDescriptor getTree(Object request)throws ParameterException, Exception; + + public Report getReportByScope(ScopeDescriptor desc, Date from, Date to, MeasureResolution resolution) throws ParameterException, SQLException; + + + public Set getDimensions() throws SQLException; + + public Set getContexts() throws SQLException; + + public UpdateReport insertRecords(AccountingRecord... toInsert) throws SQLException; + + +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/ParameterException.java b/src/main/java/org/gcube/data/access/accounting/summary/access/ParameterException.java new file mode 100644 index 0000000..7cc4582 --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/ParameterException.java @@ -0,0 +1,37 @@ +package org.gcube.data.access.accounting.summary.access; + +public class ParameterException extends Exception { + + /** + * + */ + private static final long serialVersionUID = 6606149726716378377L; + + public ParameterException() { + super(); + // TODO Auto-generated constructor stub + } + + public ParameterException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + // TODO Auto-generated constructor stub + } + + public ParameterException(String message, Throwable cause) { + super(message, cause); + // TODO Auto-generated constructor stub + } + + public ParameterException(String message) { + super(message); + // TODO Auto-generated constructor stub + } + + public ParameterException(Throwable cause) { + super(cause); + // TODO Auto-generated constructor stub + } + + + +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/impl/AccountingDaoImpl.java b/src/main/java/org/gcube/data/access/accounting/summary/access/impl/AccountingDaoImpl.java new file mode 100644 index 0000000..ac4e93d --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/impl/AccountingDaoImpl.java @@ -0,0 +1,288 @@ +package org.gcube.data.access.accounting.summary.access.impl; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.time.LocalDateTime; +import java.time.Period; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Set; + +import org.gcube.data.access.accounting.summary.access.AccountingDao; +import org.gcube.data.access.accounting.summary.access.ParameterException; +import org.gcube.data.access.accounting.summary.access.impl.DBStructure.CONTEXTS; +import org.gcube.data.access.accounting.summary.access.impl.DBStructure.DIMENSIONS; +import org.gcube.data.access.accounting.summary.access.impl.DBStructure.Measure; +import org.gcube.data.access.accounting.summary.access.model.MeasureResolution; +import org.gcube.data.access.accounting.summary.access.model.Record; +import org.gcube.data.access.accounting.summary.access.model.Report; +import org.gcube.data.access.accounting.summary.access.model.ReportElement; +import org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor; +import org.gcube.data.access.accounting.summary.access.model.Series; +import org.gcube.data.access.accounting.summary.access.model.internal.Dimension; +import org.gcube.data.access.accounting.summary.access.model.update.AccountingRecord; +import org.gcube.data.access.accounting.summary.access.model.update.UpdateReport; + +import lombok.extern.slf4j.Slf4j; + + +@Slf4j +public class AccountingDaoImpl implements AccountingDao{ + + + private ContextTreeProvider treeProvider=null; + private ConnectionManager connectionManager=null; + + public AccountingDaoImpl() { + connectionManager=new BasicConnectionManager(); + treeProvider=new BasicContextTreeProvider(); + } + + public void setTreeProvider(ContextTreeProvider treeProvider) { + this.treeProvider = treeProvider; + } + + public AccountingDaoImpl(ContextTreeProvider treeProvider, ConnectionManager connectionManager) { + super(); + this.treeProvider = treeProvider; + this.connectionManager = connectionManager; + } + + + + @Override + public Report getReportByScope(ScopeDescriptor desc, Date from, Date to, MeasureResolution resolution) throws SQLException, ParameterException { + + DateTimeFormatter formatter=getFormatter(resolution); + LocalDateTime fromDate=from.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + LocalDateTime toDate=to.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + long startReportTime=System.currentTimeMillis(); + + log.info("Loading report {} for {} between {} and {} ",resolution,desc.getId(),formatter.format(fromDate),formatter.format(toDate)); + + Connection conn=connectionManager.getConnection(); + Queries queries=new Queries(conn); + + int timeSlices=getRangeSize(from, to, resolution); + + + //load available dimensions in time slice + ResultSet dimensionRS=queries.getAvailableDimensions(from, to, desc, resolution); + LinkedList foundDimensions=new LinkedList<>(); + while(dimensionRS.next()){ + String id=dimensionRS.getString(DIMENSIONS.ID); + String label=dimensionRS.getString(DIMENSIONS.LABEL); + String group=dimensionRS.getString(DIMENSIONS.GROUP); + String aggregatedDim=dimensionRS.getString(DIMENSIONS.AGGREGATED_MEASURE); + + foundDimensions.add(new Dimension(id,label,aggregatedDim,group)); + } + log.debug("Found {} dimensions to load. ",foundDimensions.size()); + + // Prepare reports for each Dimension + LinkedList reports=new LinkedList<>(); + for(Dimension entry: foundDimensions){ + String xLabel=entry.getLabel(); + String yLabel="time"; + String category=entry.getGroup(); + + // Report 1 series for selected Scope + reports.add(new ReportElement(desc.getName()+" "+xLabel,category, + xLabel,yLabel,new Series[]{getSeries(queries, from, to, entry, desc, resolution, timeSlices)})); + + // Report 2 series for each children + if(desc.hasChildren()) { + LinkedList childrenSeries=new LinkedList<>(); + for(ScopeDescriptor child:desc.getChildren()){ + childrenSeries.add(getSeries(queries, from, to, entry, child, resolution, timeSlices)); + } + reports.add(new ReportElement(desc.getName()+" children "+xLabel,category, + xLabel,yLabel,childrenSeries.toArray(new Series[childrenSeries.size()]))); + } + + + // PreparedStatement psMeasure=queries.prepareMeasuresByDimension(desc, resolution); + // + // LocalDateTime toDate=to.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + // for(LocalDateTime toAsk=from.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + // toAsk.isAfter(toDate);toAsk=increment(toAsk,resolution)){ + // // Scan for time slice + // } + } + + log.info("Loaded {} report elements in {} ms",reports.size(),(System.currentTimeMillis()-startReportTime)); + + + return new Report(reports); + + } + + + + + + @Override + public ScopeDescriptor getTree(Object request) throws Exception { + return treeProvider.getTree(request); + } + + + @Override + public Set getDimensions() throws SQLException { + Connection conn=connectionManager.getConnection(); + Queries q=new Queries(conn); + ResultSet rs=q.listDimensions(); + HashSet toReturn=new HashSet<>(); + while(rs.next()) { + String id=rs.getString(DIMENSIONS.ID); + String label=rs.getString(DIMENSIONS.LABEL); + String group=rs.getString(DIMENSIONS.GROUP); + String aggregatedMeasure =rs.getString(DIMENSIONS.AGGREGATED_MEASURE); + toReturn.add(new Dimension(id,label,aggregatedMeasure,group)); + } + return toReturn; + } + + @Override + public Set getContexts() throws SQLException { + Connection conn=connectionManager.getConnection(); + Queries q=new Queries(conn); + ResultSet rs=q.listContexts(); + HashSet toReturn=new HashSet<>(); + while(rs.next()) { + String id=rs.getString(CONTEXTS.ID); + String label=rs.getString(CONTEXTS.LABEL); + toReturn.add(new ScopeDescriptor(id,label)); + } + return toReturn; + } + + @Override + public UpdateReport insertRecords(AccountingRecord... toInsert) throws SQLException { + log.trace("Preapring to insert {} records.",toInsert.length); + + Set existingDimensions=getDimensions(); + Set existingContexts=getContexts(); + Connection conn=connectionManager.getConnection(); + + log.debug("Loaded {} existing dimensions and {} contexts ",existingDimensions.size(),existingContexts.size()); + Queries q=new Queries(conn); + PreparedStatement psMeasure=q.getMeasureInsertionPreparedStatement(); + PreparedStatement psContexts=q.getContextInsertionPreparedStatement(); + PreparedStatement psDimensions=q.getDimensionInsertionPreparedStatement(); + + long insertMeasureCounter=0l; + Set insertedDimensions=new HashSet<>(); + Set insertedContexts=new HashSet<>(); + + log.debug("Actually registering records.."); + for(AccountingRecord record:toInsert) { + Dimension dim=record.getDimension(); + ScopeDescriptor context=record.getContext(); + + + if(!existingDimensions.contains(dim)) { + log.debug("Registering {} ",dim); + //ID,Label,Group,AGG + psDimensions.setString(1, dim.getId()); + psDimensions.setString(2, dim.getLabel()); + psDimensions.setString(3, dim.getGroup()); + psDimensions.setString(4, dim.getAggregatedMeasure()); + if(psDimensions.executeUpdate()==0)throw new SQLException("Error registering Dimension : No inserted rows"); + insertedDimensions.add(dim); + } + + if(!existingContexts.contains(context)) { + log.debug("Registering {} ",context); + //ID,Label + psContexts.setString(1, context.getId()); + psContexts.setString(2, context.getName()); + if(psContexts.executeUpdate()==0)throw new SQLException("Error registering Context : No inserted rows"); + insertedContexts.add(context); + } + + //Context, Dim,time,measure + psMeasure.setString(1, context.getId()); + psMeasure.setString(2, dim.getId()); + psMeasure.setLong(3, record.getTime().getTime()); + psMeasure.setLong(4, record.getMeasure()); + psMeasure.setLong(5, record.getMeasure()); + if(psMeasure.executeUpdate()==0) throw new SQLException("Error registering Measure : No inserted rows"); + insertMeasureCounter++; + } + + conn.commit(); + log.trace("Done inserting {} rows. Registered {} dimensions and {} contexts.",insertMeasureCounter,insertedDimensions.size(),insertedContexts.size()); + + return new UpdateReport(insertMeasureCounter,insertedContexts,insertedDimensions); + } + + + + + private static final int getRangeSize(Date from, Date to, MeasureResolution resolution) throws ParameterException { + log.debug("Evaluating time range between {} , {} [{}]",from,to,resolution); + + Period p=Period.between(from.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), to.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); + switch(resolution) { + case MONTHLY : return p.getMonths()+(p.getYears()*12); + default : throw new ParameterException("Invalid resolution "+resolution); + } + + } + + + + private static LocalDateTime increment(LocalDateTime toIncrement,MeasureResolution res,int offset){ + switch(res){ + case MONTHLY : return toIncrement.plusMonths(1); + default : throw new RuntimeException("Unexpected Resolution "+res); + } + } + + private static final DateTimeFormatter monthFormatter=DateTimeFormatter.ofPattern("yyyy-MM"); + + + private static DateTimeFormatter getFormatter(MeasureResolution res){ + switch(res){ + case MONTHLY : return monthFormatter; + default : throw new RuntimeException("Unexpected Resolution "+res); + } + } + + + + private Series getSeries(Queries queries, Date from, Date to, Dimension dim, ScopeDescriptor scope, MeasureResolution res, int timeSlices) throws SQLException{ + + Record[] records=new Record[timeSlices]; + PreparedStatement ps=queries.prepareMeasuresByDimension(scope, res); + DateTimeFormatter formatter=getFormatter(res); + + + LocalDateTime toSetStartDate=from.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + for(int i=0;i cache=new ConcurrentHashMap<>(); + + + + private synchronized DataBaseDescriptor getDatabase() { + try { + final String currentToken=SecurityTokenProvider.instance.get(); + if(currentToken==null) throw new Exception("Unauthorized request. No gcube token found."); + AuthorizationEntry entry = authorizationService().get(currentToken); + final String context=entry.getContext(); + return cache.computeIfAbsent(context, new Function(){ + @Override + public DataBaseDescriptor apply(String t) { + try{ + log.debug("Querying for database in context {} ",context); + SecurityTokenProvider.instance.set(currentToken); + SimpleQuery query = ICFactory.queryFor(ServiceEndpoint.class); + query.addCondition("$resource/Profile/Category/text() eq 'Database'") + .addCondition("$resource/Profile/Name/text() eq 'AccountingDashboard'"); + DiscoveryClient client = ICFactory.clientFor(ServiceEndpoint.class); + ServiceEndpoint endpoint= client.submit(query).get(0); + log.debug("Found SE id {} ",endpoint.id()); + AccessPoint ap=endpoint.profile().accessPoints().iterator().next(); + return new DataBaseDescriptor(ap.address(),ap.username(),StringEncrypter.getEncrypter().decrypt(ap.password()),System.currentTimeMillis()); + }catch(Throwable th) { + throw new RuntimeException("Unable to load Database credentials under context "+context,th); + } + } + }); + }catch (Exception t) { + throw new RuntimeException("Unable to get DB Descriptor ",t); + } + } + + + + @Override + public Connection getConnection() throws SQLException { + DataBaseDescriptor db=getDatabase(); + try { + Class.forName("org.postgresql.Driver"); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + Connection conn = DriverManager.getConnection(db.getUrl(), db.getUser(), db.getPassword()); + + // PRODUCTION OLD DB + + + conn.setAutoCommit(false); + return conn; + } + +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/impl/BasicContextTreeProvider.java b/src/main/java/org/gcube/data/access/accounting/summary/access/impl/BasicContextTreeProvider.java new file mode 100644 index 0000000..1e6ddca --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/impl/BasicContextTreeProvider.java @@ -0,0 +1,23 @@ +package org.gcube.data.access.accounting.summary.access.impl; + +import static org.gcube.common.authorization.client.Constants.authorizationService; + +import org.gcube.common.authorization.library.AuthorizationEntry; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor; + +public class BasicContextTreeProvider implements ContextTreeProvider { + + @Override + public ScopeDescriptor getTree(Object unuseful) throws Exception { + + final String currentToken=SecurityTokenProvider.instance.get(); + if(currentToken==null) throw new Exception("Unauthorized request. No gcube token found."); + AuthorizationEntry entry = authorizationService().get(currentToken); + final String context=entry.getContext(); + + return new ScopeDescriptor(context.substring(context.lastIndexOf("/")+1, context.length()),context); + + } + +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/impl/ConnectionManager.java b/src/main/java/org/gcube/data/access/accounting/summary/access/impl/ConnectionManager.java new file mode 100644 index 0000000..8e7b394 --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/impl/ConnectionManager.java @@ -0,0 +1,11 @@ +package org.gcube.data.access.accounting.summary.access.impl; + +import java.sql.Connection; +import java.sql.SQLException; + +public interface ConnectionManager { + + + public Connection getConnection() throws SQLException; + +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/impl/ContextTreeProvider.java b/src/main/java/org/gcube/data/access/accounting/summary/access/impl/ContextTreeProvider.java new file mode 100644 index 0000000..050648a --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/impl/ContextTreeProvider.java @@ -0,0 +1,12 @@ +package org.gcube.data.access.accounting.summary.access.impl; + +import org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor; + + + +public interface ContextTreeProvider { + + + public ScopeDescriptor getTree(Object context) throws Exception; + +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/impl/DBStructure.java b/src/main/java/org/gcube/data/access/accounting/summary/access/impl/DBStructure.java new file mode 100644 index 0000000..aa8f9e7 --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/impl/DBStructure.java @@ -0,0 +1,26 @@ +package org.gcube.data.access.accounting.summary.access.impl; + +public class DBStructure { + + public static class Measure{ + public static final String TABLENAME="monthly"; + public static final String TIME="time"; + public static final String DIMENSION="dimension"; + public static final String MEASURE="measure"; + public static final String CONTEXT="context"; + } + + public static class DIMENSIONS{ + public static final String TABLENAME="dimensions"; + public static final String ID="id"; + public static final String LABEL="LABEL"; + public static final String GROUP="dimension_group"; + public static final String AGGREGATED_MEASURE="aggregated_measure"; + } + + public static class CONTEXTS{ + public static final String TABLENAME="contexts"; + public static final String ID="id"; + public static final String LABEL="LABEL"; + } +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/impl/Queries.java b/src/main/java/org/gcube/data/access/accounting/summary/access/impl/Queries.java new file mode 100644 index 0000000..d04f47f --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/impl/Queries.java @@ -0,0 +1,155 @@ +package org.gcube.data.access.accounting.summary.access.impl; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Date; + +import org.gcube.data.access.accounting.summary.access.impl.DBStructure.CONTEXTS; +import org.gcube.data.access.accounting.summary.access.impl.DBStructure.DIMENSIONS; +import org.gcube.data.access.accounting.summary.access.impl.DBStructure.Measure; +import org.gcube.data.access.accounting.summary.access.model.MeasureResolution; +import org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor; + +import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@RequiredArgsConstructor +public class Queries { + + @NonNull + private Connection conn; + + + public ResultSet listDimensions() throws SQLException { + return conn.createStatement().executeQuery("Select * from "+DIMENSIONS.TABLENAME+" order by "+DIMENSIONS.LABEL); + } + + public ResultSet listContexts() throws SQLException { + return conn.createStatement().executeQuery("Select * from "+CONTEXTS.TABLENAME+" order by "+CONTEXTS.LABEL); + } + + /** + * Returned parameters order is + * Context, Dimension, Time, Measure, Measure + * + * NB : Measure is replicated in order to manage update on conflict + * + * @return PS with parameters + * @throws SQLException + */ + public PreparedStatement getMeasureInsertionPreparedStatement() throws SQLException { + String query=String.format("INSERT INTO %1$s (%2$s,%3$s,%4$s,%5$s) values (?,?,?,?)" + +" ON CONFLICT ON CONSTRAINT "+Measure.TABLENAME+"_pKey DO UPDATE SET "+Measure.MEASURE+"=?", + Measure.TABLENAME,Measure.CONTEXT,Measure.DIMENSION,Measure.TIME,Measure.MEASURE); + return conn.prepareStatement(query); + } + + /** + * Returned parameters order is + * ID,LABEL,GROUP,AGGREGATED_MEASURE + * + * + * @return + * @throws SQLException + */ + public PreparedStatement getDimensionInsertionPreparedStatement() throws SQLException { + String query=String.format("INSERT INTO %1$s (%2$s,%3$s,%4$s,%5$s) values (?,?,?,?)", + DIMENSIONS.TABLENAME,DIMENSIONS.ID,DIMENSIONS.LABEL,DIMENSIONS.GROUP,DIMENSIONS.AGGREGATED_MEASURE); + return conn.prepareStatement(query); + } + + + /** + * Returned parameters order is + * ID,LABEL + * + * + * @return + * @throws SQLException + */ + public PreparedStatement getContextInsertionPreparedStatement() throws SQLException { + String query=String.format("INSERT INTO %1$s (%2$s,%3$s) values (?,?)", + CONTEXTS.TABLENAME,CONTEXTS.ID,CONTEXTS.LABEL); + return conn.prepareStatement(query); + } + + + /** + * Returns Dimensions.* fields + * + * @param from + * @param to + * @param scope + * @param resolution + * @return + * @throws SQLException + */ + public ResultSet getAvailableDimensions(Date from, Date to, ScopeDescriptor scope,MeasureResolution resolution) throws SQLException{ + String query= String.format("Select * from %1$s where %2$s in (Select distinct(%3$s) from %4$s where %5$s AND %6$s)", + DIMENSIONS.TABLENAME, DIMENSIONS.ID, + Measure.DIMENSION,Measure.TABLENAME, + Measure.TIME+">=? AND "+Measure.TIME+"<=?", + Measure.CONTEXT+" IN "+asIDSet(scope)); + PreparedStatement toReturn= conn.prepareStatement(query); + toReturn.setLong(1, from.getTime()); + toReturn.setLong(2, to.getTime()); + + log.debug("Performing query {} with params {} and {} ",query,from.getTime(),to.getTime()); + + return toReturn.executeQuery(); + } + + /** + * Prepares a statement for Getting Dim=? in time interval for the scope set + * + * PS params : + * 1- long from + * 2- long to + * 3- String dimension + * + * + * @param from + * @param to + * @param scope + * @param resolution + * @return + * @throws SQLException + */ + public PreparedStatement prepareMeasuresByDimension(ScopeDescriptor scope, MeasureResolution resolution) throws SQLException{ + //single scope +// "Select measure from measures where context=? and time ok and measure.id=? order by time ASC"; + // multi scope + return conn.prepareStatement(String.format("Select sum(%1$s) as %1$s from %2$s where %3$s AND %4$s AND %5$s=? group by %6$s order by %7$s", + Measure.MEASURE,Measure.TABLENAME, + Measure.CONTEXT+" IN "+asIDSet(scope), //context ok + Measure.TIME+">=? AND "+Measure.TIME+"<=?", // time ok, PS Parameter + Measure.DIMENSION, // dimension ok, PS parameter + Measure.TIME, // group by (time) + Measure.TIME)); // order by time + + + } + + + public static final String asIDSet(ScopeDescriptor desc){ + return "("+scopeList(desc)+")"; + } + + + private static final String scopeList(ScopeDescriptor desc) { + StringBuilder setBuilder=new StringBuilder(); + setBuilder.append("'"+desc.getId()+"'"+","); + if(desc.hasChildren()) { + for(ScopeDescriptor child : desc.getChildren()) + setBuilder.append(scopeList(child)+","); + + } + String toReturn=setBuilder.toString(); + return toReturn.substring(0, toReturn.lastIndexOf(",")); + + } +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/model/MeasureResolution.java b/src/main/java/org/gcube/data/access/accounting/summary/access/model/MeasureResolution.java new file mode 100644 index 0000000..2a62074 --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/model/MeasureResolution.java @@ -0,0 +1,19 @@ +package org.gcube.data.access.accounting.summary.access.model; + +import java.io.Serializable; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter + +public enum MeasureResolution implements Serializable{ + + MONTHLY("monthly_measure"); + + private String tableName; + + + +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/model/Record.java b/src/main/java/org/gcube/data/access/accounting/summary/access/model/Record.java new file mode 100644 index 0000000..4f7b5b9 --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/model/Record.java @@ -0,0 +1,24 @@ +package org.gcube.data.access.accounting.summary.access.model; + +import java.io.Serializable; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import lombok.AllArgsConstructor; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class Record implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 2789039942507048174L; + private String x; + private Long y; + +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/model/Report.java b/src/main/java/org/gcube/data/access/accounting/summary/access/model/Report.java new file mode 100644 index 0000000..26bda74 --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/model/Report.java @@ -0,0 +1,34 @@ +package org.gcube.data.access.accounting.summary.access.model; + +import java.io.Serializable; +import java.util.LinkedList; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@AllArgsConstructor +@NoArgsConstructor +@Getter +@Setter +public class Report implements Serializable { + + + + /** + * + */ + private static final long serialVersionUID = 4621957934766560486L; + private LinkedList elements; + @Override + public String toString() { + StringBuilder builder=new StringBuilder(); + for(ReportElement element:elements){ + builder.append(element.toString()+"\n"); + } + return builder.toString(); + } + + +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/model/ReportElement.java b/src/main/java/org/gcube/data/access/accounting/summary/access/model/ReportElement.java new file mode 100644 index 0000000..5e134d9 --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/model/ReportElement.java @@ -0,0 +1,66 @@ +package org.gcube.data.access.accounting.summary.access.model; + +import java.io.Serializable; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@AllArgsConstructor +@NoArgsConstructor +@Setter +public class ReportElement implements Serializable { + + + private static final long serialVersionUID = 4067222241647217177L; + + /** + * LABEL + * | + * | _ + * yaxis | _ | | + * | | || |_ + * | | || | | + * --------------------------------------------------- + * + * + * *Series_label1 *Series_label2 *Series_label3 + * + * xAxis + * + */ + + + + /** + * Series[] { + * Series : LABEL, dataRow [] + * Series : LABEL, dataRow [] + * Series : LABEL, dataRow [] + * Series : LABEL, dataRow [] + * } + */ + + + + private String label; + private String category; + private String xAxis; + private String yAxis; + + + private Series[] serieses; + + + @Override + public String toString() { + StringBuilder builder=new StringBuilder("REPORT "+label); + builder.append(" Y : "+yAxis+" X : "+xAxis+"\n"); + for(Series s:serieses){ + builder.append(s.toString()+"\n"); + } + return builder.toString(); + } +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/model/ScopeDescriptor.java b/src/main/java/org/gcube/data/access/accounting/summary/access/model/ScopeDescriptor.java new file mode 100644 index 0000000..cb67caf --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/model/ScopeDescriptor.java @@ -0,0 +1,67 @@ +package org.gcube.data.access.accounting.summary.access.model; + +import java.io.Serializable; +import java.util.LinkedList; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@ToString +@RequiredArgsConstructor +@NoArgsConstructor +public class ScopeDescriptor implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = 8470652008117771209L; + + @NonNull + private String name; + + @NonNull + private String id; + + private LinkedList children=new LinkedList<>(); + + + public boolean hasChildren() { + return children!=null&&!children.isEmpty(); + } + + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + ScopeDescriptor other = (ScopeDescriptor) obj; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + return true; + } + + + + +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/model/Series.java b/src/main/java/org/gcube/data/access/accounting/summary/access/model/Series.java new file mode 100644 index 0000000..013579b --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/model/Series.java @@ -0,0 +1,35 @@ +package org.gcube.data.access.accounting.summary.access.model; + +import java.io.Serializable; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Setter +@Getter +@AllArgsConstructor +@NoArgsConstructor +public class Series implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 6980358300936282238L; + + private String label; + private Record[] dataRow; + + + @Override + public String toString() { + StringBuilder values=new StringBuilder(); + StringBuilder xCoord=new StringBuilder(); + for(Record record: dataRow){ + values.append(record.getY()+"\t"); + xCoord.append(record.getX()+"\t"); + } + return label+"\n"+values+"\n"+xCoord+"\n"; + } +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/model/internal/Dimension.java b/src/main/java/org/gcube/data/access/accounting/summary/access/model/internal/Dimension.java new file mode 100644 index 0000000..15e75f4 --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/model/internal/Dimension.java @@ -0,0 +1,39 @@ +package org.gcube.data.access.accounting.summary.access.model.internal; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public class Dimension { + + private String id; + private String label; + private String aggregatedMeasure; + private String group; + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Dimension other = (Dimension) obj; + if (id == null) { + if (other.id != null) + return false; + } else if (!id.equals(other.id)) + return false; + return true; + } + + +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/model/update/AccountingRecord.java b/src/main/java/org/gcube/data/access/accounting/summary/access/model/update/AccountingRecord.java new file mode 100644 index 0000000..884f05f --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/model/update/AccountingRecord.java @@ -0,0 +1,23 @@ +package org.gcube.data.access.accounting.summary.access.model.update; + +import java.util.Date; + +import org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor; +import org.gcube.data.access.accounting.summary.access.model.internal.Dimension; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@ToString +@AllArgsConstructor +public class AccountingRecord { + + private ScopeDescriptor context; + private Date time; + private Dimension dimension; + private Long measure; +} diff --git a/src/main/java/org/gcube/data/access/accounting/summary/access/model/update/UpdateReport.java b/src/main/java/org/gcube/data/access/accounting/summary/access/model/update/UpdateReport.java new file mode 100644 index 0000000..eac6021 --- /dev/null +++ b/src/main/java/org/gcube/data/access/accounting/summary/access/model/update/UpdateReport.java @@ -0,0 +1,21 @@ +package org.gcube.data.access.accounting.summary.access.model.update; + +import java.util.Set; + +import org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor; +import org.gcube.data.access.accounting.summary.access.model.internal.Dimension; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.ToString; + + +@AllArgsConstructor +@ToString +@Getter +public class UpdateReport { + + private long insertCount; + private Set registeredConstexts; + private Set registeredDimensions; +} diff --git a/src/test/java/org/gcube/data/access/accounting/summary/access/test/DummyContextTreeProvider.java b/src/test/java/org/gcube/data/access/accounting/summary/access/test/DummyContextTreeProvider.java new file mode 100644 index 0000000..c7148bb --- /dev/null +++ b/src/test/java/org/gcube/data/access/accounting/summary/access/test/DummyContextTreeProvider.java @@ -0,0 +1,22 @@ +package org.gcube.data.access.accounting.summary.access.test; + +import org.gcube.data.access.accounting.summary.access.impl.ContextTreeProvider; +import org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor; + +public class DummyContextTreeProvider implements ContextTreeProvider { + + + @Override + public ScopeDescriptor getTree(Object context) { + ScopeDescriptor toReturn=new ScopeDescriptor("Portal", "portale"); + ScopeDescriptor group1=new ScopeDescriptor("Group1","group1"); + group1.getChildren().add(new ScopeDescriptor("BlueBridge Project", "/d4science.research-infrastructures.eu/gCubeApps/BlueBridgeProject")); + toReturn.getChildren().add(group1); + ScopeDescriptor group2=new ScopeDescriptor("Group2","group2"); + group2.getChildren().add(new ScopeDescriptor("Biodiversity Lab","/d4science.research-infrastructures.eu/gCubeApps/BiodiversityLab")); + group2.getChildren().add(new ScopeDescriptor("IOTC SS3","/d4science.research-infrastructures.eu/gCubeApps/IOTC_SS3")); + toReturn.getChildren().add(group2); + toReturn.getChildren().add(new ScopeDescriptor("Fao Tuna Atlas","/d4science.research-infrastructures.eu/gCubeApps/FAO_TunaAtlas")); + return toReturn; + } +} diff --git a/src/test/java/org/gcube/data/access/accounting/summary/access/test/SimpleTest.java b/src/test/java/org/gcube/data/access/accounting/summary/access/test/SimpleTest.java new file mode 100644 index 0000000..894cc1c --- /dev/null +++ b/src/test/java/org/gcube/data/access/accounting/summary/access/test/SimpleTest.java @@ -0,0 +1,47 @@ +package org.gcube.data.access.accounting.summary.access.test; + +import java.sql.SQLException; +import java.util.Date; +import java.util.GregorianCalendar; + +import org.gcube.data.access.accounting.summary.access.AccountingDao; +import org.gcube.data.access.accounting.summary.access.ParameterException; +import org.gcube.data.access.accounting.summary.access.impl.AccountingDaoImpl; +import org.gcube.data.access.accounting.summary.access.impl.Queries; +import org.gcube.data.access.accounting.summary.access.model.MeasureResolution; +import org.gcube.data.access.accounting.summary.access.model.Report; +import org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor; + +public class SimpleTest { + + public static void main(String[] args) throws ParameterException, Exception { + TokenSetter.set("/d4science.research-infrastructures.eu/gCubeApps"); + AccountingDao dao=AccountingDao.get(new DummyContextTreeProvider()); + + ScopeDescriptor desc=dao.getTree(null); + + + System.out.println(desc); + + Date from=new GregorianCalendar(2015,1,1).getTime(); + Date to=new Date(System.currentTimeMillis()); + + scan(desc,from,to,dao); + + + System.out.println(Queries.asIDSet(desc)); + + } + + private static void scan(ScopeDescriptor desc, Date from, Date to, AccountingDao dao) throws ParameterException, SQLException { + System.out.println("**********************************************************************************************************"); + System.out.println(desc); + System.out.println(dao.getReportByScope(desc, from, to, MeasureResolution.MONTHLY)); + if(desc.hasChildren()) { + for(ScopeDescriptor child:desc.getChildren()) + scan(child,from,to,dao); + } + } + + +} diff --git a/src/test/java/org/gcube/data/access/accounting/summary/access/test/TokenSetter.java b/src/test/java/org/gcube/data/access/accounting/summary/access/test/TokenSetter.java new file mode 100644 index 0000000..5fafe70 --- /dev/null +++ b/src/test/java/org/gcube/data/access/accounting/summary/access/test/TokenSetter.java @@ -0,0 +1,55 @@ +package org.gcube.data.access.accounting.summary.access.test; + +import static org.gcube.common.authorization.client.Constants.authorizationService; + +import java.util.Properties; + +import org.gcube.common.authorization.library.AuthorizationEntry; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.scope.api.ScopeProvider; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class TokenSetter{ + + private static Properties props=null; + + static{ + + } + + + public static synchronized void set(String scope){ + try{ + if(props==null) { + props=new Properties(); + try { + props.load(TokenSetter.class.getResourceAsStream("/tokens.properties")); + } catch (Exception e) { + throw new RuntimeException("YOU NEED TO SET TOKEN FILE IN CONFIGURATION"); + } + } + if(!props.containsKey(scope)) throw new Exception("No token found for scope : "+scope); + SecurityTokenProvider.instance.set(props.getProperty(scope)); + }catch(Throwable e){ + log.trace("Unable to set token for scope "+scope,e); + } + ScopeProvider.instance.set(scope); + } + + + public static void setToken(String token){ + try{ + AuthorizationEntry entry = authorizationService().get(token); + ScopeProvider.instance.set(entry.getContext()); + SecurityTokenProvider.instance.set(token); + }catch(Throwable t) { + throw new RuntimeException("Unable to set token "+token,t); + } + } + + public static String getCurrentToken() { + return SecurityTokenProvider.instance.get(); + } +} \ No newline at end of file diff --git a/src/test/java/org/gcube/data/access/accounting/summary/access/utils/Importer.java b/src/test/java/org/gcube/data/access/accounting/summary/access/utils/Importer.java new file mode 100644 index 0000000..ed88527 --- /dev/null +++ b/src/test/java/org/gcube/data/access/accounting/summary/access/utils/Importer.java @@ -0,0 +1,163 @@ +package org.gcube.data.access.accounting.summary.access.utils; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Date; +import java.util.HashMap; + +import org.gcube.data.access.accounting.summary.access.impl.DBStructure.CONTEXTS; + +import static org.gcube.data.access.accounting.summary.access.impl.DBStructure.*; +public class Importer { + + private static Connection getSourceConn() throws SQLException, ClassNotFoundException { + + // PRODUCTION OLD DB + String user="analytics_board_u"; + String password ="b52b64ab07ea0b5"; + String url ="jdbc:postgresql://postgresql-srv.d4science.org:5432/analytics_board"; + + Class.forName("org.postgresql.Driver"); + Connection conn = DriverManager.getConnection(url, user, password); + conn.setAutoCommit(false); + + return conn; + } + + private static Connection getDestinationConn() throws SQLException, ClassNotFoundException{ + //DEV OLD DB + String user="analytics_b_dev_u"; + String password ="78cb625303be21b"; + String url ="jdbc:postgresql://postgresql-srv-dev.d4science.org:5432/analytics_b_dev"; + + + Class.forName("org.postgresql.Driver"); + Connection conn = DriverManager.getConnection(url, user, password); + conn.setAutoCommit(false); + + return conn; + } + + public static void main(String[] args) throws Exception { + + + // Get Connection source + Connection sourceConn=getSourceConn(); + // Get Connection out + + Connection outConn=getDestinationConn(); + + + // Create tables if don't exist + + System.out.println("Creating tables if not present.."); + Statement createStatment=outConn.createStatement(); + + createStatment.execute("CREATE TABLE IF NOT EXISTS "+CONTEXTS.TABLENAME+ + "("+CONTEXTS.ID+" varchar(125) NOT NULL, " + + CONTEXTS.LABEL+" varchar (256) NOT NULL," + +"CONSTRAINT "+CONTEXTS.TABLENAME+"_pKey PRIMARY KEY ("+CONTEXTS.ID+"))"); + + createStatment.execute("CREATE TABLE IF NOT EXISTS "+DIMENSIONS.TABLENAME+ + "("+DIMENSIONS.ID+" varchar(125) NOT NULL, " + + DIMENSIONS.LABEL+" varchar (256) NOT NULL," + + DIMENSIONS.GROUP+" varchar (256) NOT NULL," + + DIMENSIONS.AGGREGATED_MEASURE+" varchar (256) DEFAULT NULL," + +"CONSTRAINT "+DIMENSIONS.TABLENAME+"_pKey PRIMARY KEY ("+DIMENSIONS.ID+"))"); + + createStatment.execute("CREATE TABLE IF NOT EXISTS "+Measure.TABLENAME+ + "("+Measure.MEASURE+" bigint NOT NULL, " + + Measure.TIME+" bigint NOT NULL," + + Measure.CONTEXT+" varchar (125) NOT NULL," + + Measure.DIMENSION+" varchar (125) NOT NULL," + +"CONSTRAINT "+Measure.TABLENAME+"_pKey PRIMARY KEY ("+Measure.TIME+","+Measure.CONTEXT+","+Measure.DIMENSION+")," + +"CONSTRAINT context_foreignKey FOREIGN KEY ("+Measure.CONTEXT+") REFERENCES "+CONTEXTS.TABLENAME+"("+CONTEXTS.ID+")," + +"CONSTRAINT dimension_foreignKey FOREIGN KEY ("+Measure.DIMENSION+") REFERENCES "+DIMENSIONS.TABLENAME+"("+DIMENSIONS.ID+"))"); + + + System.out.println("Querying for existing measures..."); + + Statement sourceStmt=sourceConn.createStatement(); + ResultSet sourceRS=sourceStmt.executeQuery("Select monthly_measure.id as id, monthly_measure.measure as measure, monthly_measure.day as day,context.dname as context, context.name as context_label, measure_type.name as dimension" + + " from monthly_measure inner join context on monthly_measure.context_id=context.id " + + " inner join measure_type on monthly_measure.measure_type_id=measure_type.id order by id"); + + // LOAD PRE EXISTING CONTEXTS + HashMap insertedContexts=new HashMap<>(); + Statement outStmt=outConn.createStatement(); + ResultSet outRS=outStmt.executeQuery("Select * from "+CONTEXTS.TABLENAME); + while(outRS.next()){ + insertedContexts.put(outRS.getString(CONTEXTS.ID), outRS.getString(CONTEXTS.LABEL)); + } + PreparedStatement contextPs=outConn.prepareStatement("Insert into "+CONTEXTS.TABLENAME+" ("+CONTEXTS.ID+", "+CONTEXTS.LABEL+") values (?,?)"); + + HashMap insertedDimensions=new HashMap<>(); + outRS=outStmt.executeQuery("Select * from "+DIMENSIONS.TABLENAME); + while(outRS.next()){ + insertedDimensions.put(outRS.getString(DIMENSIONS.ID), outRS.getString(DIMENSIONS.LABEL)); + } + PreparedStatement dimensionsPs=outConn.prepareStatement("Insert into "+DIMENSIONS.TABLENAME+" ("+DIMENSIONS.ID+", "+DIMENSIONS.LABEL+","+DIMENSIONS.GROUP+") values (?,?,?)"); + + + PreparedStatement measurePs=outConn.prepareStatement("Insert into "+Measure.TABLENAME+" ("+Measure.CONTEXT+","+Measure.DIMENSION+","+Measure.TIME+","+Measure.MEASURE+") values(?,?,?,?)" + +" ON CONFLICT ON CONSTRAINT "+Measure.TABLENAME+"_pKey DO UPDATE SET "+Measure.MEASURE+"=?"); + + long counter=0l; + + System.out.println("Importing...."); + + long startime=System.currentTimeMillis(); + + while(sourceRS.next()){ + Long measure = sourceRS.getLong("measure"); + String context = sourceRS.getString("context"); + String contextLabel= sourceRS.getString("context_label"); + String dimension = sourceRS.getString("dimension"); + String dimensionLabel= dimension; + Date day=sourceRS.getDate("day"); + + + + + if(!insertedContexts.containsKey(context)){ + // register context + contextPs.setString(1, context); + contextPs.setString(2, contextLabel); + if(contextPs.executeUpdate()==0) throw new Exception("No inserted context"); + insertedContexts.put(context,contextLabel); + } + + if(!insertedDimensions.containsKey(dimension)){ + //register dimension + dimensionsPs.setString(1, dimension); + dimensionsPs.setString(2, dimensionLabel); + dimensionsPs.setString(3, dimensionLabel); + if(dimensionsPs.executeUpdate()==0) throw new Exception("No inserted dimension"); + insertedDimensions.put(dimension,dimensionLabel); + } + + // Insert measure + + measurePs.setString(1, context); + measurePs.setString(2, dimension); + measurePs.setLong(3, day.getTime()); + measurePs.setLong(4, measure); + measurePs.setLong(5, measure); + if(measurePs.executeUpdate()==0) throw new Exception("No inserted Measure"); + + counter++; + if(counter%1000==0) + System.out.println(String.format("Inserted %1$s rows [%2$s dims, %3$s contexts]", counter, insertedDimensions.size(),insertedContexts.size())); + } + + System.out.println("Committing.."); + + outConn.commit(); + System.out.println("Done importing "+counter+" rows in "+(System.currentTimeMillis()-startime)+" ms"); + } + +} diff --git a/src/test/resources/sql/initDb.sql b/src/test/resources/sql/initDb.sql new file mode 100644 index 0000000..e69de29 diff --git a/target/accounting-summary-access-0.0.1-SNAPSHOT-javadoc.jar b/target/accounting-summary-access-0.0.1-SNAPSHOT-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..208ab35e4bf02479f3fa13475ee4aed0a4b38e0c GIT binary patch literal 141945 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 M8xKMNs}`XD14GAgCIA2c literal 0 HcmV?d00001 diff --git a/target/accounting-summary-access-0.0.1-SNAPSHOT-sources.jar b/target/accounting-summary-access-0.0.1-SNAPSHOT-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..4413d906422a1e60239d54faa3d595d3bbe4a19f GIT binary patch literal 14483 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 xblgE!kUtRee%s?d+^ZL{SQhFn9TqH literal 0 HcmV?d00001 diff --git a/target/accounting-summary-access-0.0.1-SNAPSHOT.jar b/target/accounting-summary-access-0.0.1-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..dec7141b0df59944b2fc2d3c6f6133041ef76220 GIT binary patch literal 30104 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�<x#qrJ6sFV6>AhQwI@&H=ySA_xT zWzkbHrMhPCR31YGs%wz$=y4oFy!k%__9n>Em+a(6Oze*4dXmHRNoySOF$K?N20yP| z2M^ZJ4PYdYCMFZbMG9-;;fe?=8lj(ss2;tm&f1q=B^4TU44i0Lq{pwGe%JGzU?q*A zVQZj9GId5@u%B}MvCm!POx!vn>b8AGESIQ}3e-`X`NhrmE9v#@l&M96SNS|;P6cw{ zTq5k63pyl>h{{p1;^0oD!#GC<_d}}z1VS#RK4=3xWig}0hYXnMMAznZaTBe+1kk;T zyb#Vu)*cosL-}+Pr4NT6;6z@y!k)}*60~fNP;R?S>yWgZ1*)-0R-S@jVhnXdWcS8P z{gW+Xbuh?EAC-@^gdxVnjwUQyGBEAFZ<3e}Xs6h+�B97w`+64=lGE`6zl`#=*u; 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 bPpSPYtuWV;B@htQ*I&M<5D?#uZ+`n9Bdf+H literal 0 HcmV?d00001 diff --git a/target/apidocs/allclasses-frame.html b/target/apidocs/allclasses-frame.html new file mode 100644 index 0000000..2529f45 --- /dev/null +++ b/target/apidocs/allclasses-frame.html @@ -0,0 +1,39 @@ + + + + + + +All Classes (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + +

All Classes

+
+ + diff --git a/target/apidocs/allclasses-noframe.html b/target/apidocs/allclasses-noframe.html new file mode 100644 index 0000000..36bf099 --- /dev/null +++ b/target/apidocs/allclasses-noframe.html @@ -0,0 +1,39 @@ + + + + + + +All Classes (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + +

All Classes

+ + + diff --git a/target/apidocs/constant-values.html b/target/apidocs/constant-values.html new file mode 100644 index 0000000..9fe97b0 --- /dev/null +++ b/target/apidocs/constant-values.html @@ -0,0 +1,263 @@ + + + + + + +Constant Field Values (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + +
+

Constant Field Values

+

Contents

+ +
+
+ + +

org.gcube.*

+ +
+ +
+ + + + + + + +
+ + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/deprecated-list.html b/target/apidocs/deprecated-list.html new file mode 100644 index 0000000..b73199d --- /dev/null +++ b/target/apidocs/deprecated-list.html @@ -0,0 +1,126 @@ + + + + + + +Deprecated List (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + +
+

Deprecated API

+

Contents

+
+ +
+ + + + + + + +
+ + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/help-doc.html b/target/apidocs/help-doc.html new file mode 100644 index 0000000..f1ec6c9 --- /dev/null +++ b/target/apidocs/help-doc.html @@ -0,0 +1,231 @@ + + + + + + +API Help (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + +
+

How This API Document Is Organized

+
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+
    +
  • +

    Overview

    +

    The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

    +
  • +
  • +

    Package

    +

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:

    +
      +
    • Interfaces (italic)
    • +
    • Classes
    • +
    • Enums
    • +
    • Exceptions
    • +
    • Errors
    • +
    • Annotation Types
    • +
    +
  • +
  • +

    Class/Interface

    +

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    +
      +
    • Class inheritance diagram
    • +
    • Direct Subclasses
    • +
    • All Known Subinterfaces
    • +
    • All Known Implementing Classes
    • +
    • Class/interface declaration
    • +
    • Class/interface description
    • +
    +
      +
    • Nested Class Summary
    • +
    • Field Summary
    • +
    • Constructor Summary
    • +
    • Method Summary
    • +
    +
      +
    • Field Detail
    • +
    • Constructor Detail
    • +
    • Method Detail
    • +
    +

    Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    +
  • +
  • +

    Annotation Type

    +

    Each annotation type has its own separate page with the following sections:

    +
      +
    • Annotation Type declaration
    • +
    • Annotation Type description
    • +
    • Required Element Summary
    • +
    • Optional Element Summary
    • +
    • Element Detail
    • +
    +
  • +
  • +

    Enum

    +

    Each enum has its own separate page with the following sections:

    +
      +
    • Enum declaration
    • +
    • Enum description
    • +
    • Enum Constant Summary
    • +
    • Enum Constant Detail
    • +
    +
  • +
  • +

    Use

    +

    Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

    +
  • +
  • +

    Tree (Class Hierarchy)

    +

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.

    +
      +
    • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
    • +
    • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
    • +
    +
  • +
  • +

    Deprecated API

    +

    The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

    +
  • +
  • +

    Index

    +

    The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

    +
  • +
  • +

    Prev/Next

    +

    These links take you to the next or previous class, interface, package, or related page.

    +
  • +
  • +

    Frames/No Frames

    +

    These links show and hide the HTML frames. All pages are available with or without frames.

    +
  • +
  • +

    All Classes

    +

    The All Classes link shows all classes and interfaces except non-static nested types.

    +
  • +
  • +

    Serialized Form

    +

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

    +
  • +
  • +

    Constant Field Values

    +

    The Constant Field Values page lists the static final fields and their values.

    +
  • +
+This help file applies to API documentation generated using the standard doclet.
+ +
+ + + + + + + +
+ + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/index-all.html b/target/apidocs/index-all.html new file mode 100644 index 0000000..c4a5d0b --- /dev/null +++ b/target/apidocs/index-all.html @@ -0,0 +1,401 @@ + + + + + + +Index (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + +
A B C D E G H I L M O P Q R S T V  + + +

A

+
+
AccountingDao - Interface in org.gcube.data.access.accounting.summary.access
+
 
+
AccountingDaoImpl - Class in org.gcube.data.access.accounting.summary.access.impl
+
 
+
AccountingDaoImpl() - Constructor for class org.gcube.data.access.accounting.summary.access.impl.AccountingDaoImpl
+
 
+
AccountingDaoImpl(ContextTreeProvider, ConnectionManager) - Constructor for class org.gcube.data.access.accounting.summary.access.impl.AccountingDaoImpl
+
 
+
AGGREGATED_MEASURE - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.DIMENSIONS
+
 
+
asIDSet(ScopeDescriptor) - Static method in class org.gcube.data.access.accounting.summary.access.impl.Queries
+
 
+
+ + + +

B

+
+
BasicConnectionManager - Class in org.gcube.data.access.accounting.summary.access.impl
+
 
+
BasicConnectionManager() - Constructor for class org.gcube.data.access.accounting.summary.access.impl.BasicConnectionManager
+
 
+
BasicContextTreeProvider - Class in org.gcube.data.access.accounting.summary.access.impl
+
 
+
BasicContextTreeProvider() - Constructor for class org.gcube.data.access.accounting.summary.access.impl.BasicContextTreeProvider
+
 
+
+ + + +

C

+
+
ConnectionManager - Interface in org.gcube.data.access.accounting.summary.access.impl
+
 
+
CONTEXT - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.Measure
+
 
+
CONTEXTS() - Constructor for class org.gcube.data.access.accounting.summary.access.impl.DBStructure.CONTEXTS
+
 
+
ContextTreeProvider - Interface in org.gcube.data.access.accounting.summary.access.impl
+
 
+
+ + + +

D

+
+
DBStructure - Class in org.gcube.data.access.accounting.summary.access.impl
+
 
+
DBStructure() - Constructor for class org.gcube.data.access.accounting.summary.access.impl.DBStructure
+
 
+
DBStructure.CONTEXTS - Class in org.gcube.data.access.accounting.summary.access.impl
+
 
+
DBStructure.DIMENSIONS - Class in org.gcube.data.access.accounting.summary.access.impl
+
 
+
DBStructure.Measure - Class in org.gcube.data.access.accounting.summary.access.impl
+
 
+
DIMENSION - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.Measure
+
 
+
Dimension - Class in org.gcube.data.access.accounting.summary.access.model.internal
+
 
+
Dimension() - Constructor for class org.gcube.data.access.accounting.summary.access.model.internal.Dimension
+
 
+
DIMENSIONS() - Constructor for class org.gcube.data.access.accounting.summary.access.impl.DBStructure.DIMENSIONS
+
 
+
+ + + +

E

+
+
equals(Object) - Method in class org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor
+
 
+
+ + + +

G

+
+
get() - Static method in interface org.gcube.data.access.accounting.summary.access.AccountingDao
+
 
+
get(ContextTreeProvider) - Static method in interface org.gcube.data.access.accounting.summary.access.AccountingDao
+
 
+
getAvailableDimensions(Date, Date, ScopeDescriptor, MeasureResolution) - Method in class org.gcube.data.access.accounting.summary.access.impl.Queries
+
+
Returns Dimensions.* fields
+
+
getConnection() - Method in class org.gcube.data.access.accounting.summary.access.impl.BasicConnectionManager
+
 
+
getConnection() - Method in interface org.gcube.data.access.accounting.summary.access.impl.ConnectionManager
+
 
+
getReportByScope(ScopeDescriptor, Date, Date, MeasureResolution) - Method in interface org.gcube.data.access.accounting.summary.access.AccountingDao
+
 
+
getReportByScope(ScopeDescriptor, Date, Date, MeasureResolution) - Method in class org.gcube.data.access.accounting.summary.access.impl.AccountingDaoImpl
+
 
+
getTree(Object) - Method in interface org.gcube.data.access.accounting.summary.access.AccountingDao
+
 
+
getTree(Object) - Method in class org.gcube.data.access.accounting.summary.access.impl.AccountingDaoImpl
+
 
+
getTree(Object) - Method in class org.gcube.data.access.accounting.summary.access.impl.BasicContextTreeProvider
+
 
+
getTree(Object) - Method in interface org.gcube.data.access.accounting.summary.access.impl.ContextTreeProvider
+
 
+
getTree(Object) - Method in class org.gcube.data.access.accounting.summary.access.impl.PortalContextTreeProvider
+
 
+
GROUP - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.DIMENSIONS
+
 
+
+ + + +

H

+
+
hasChildren() - Method in class org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor
+
 
+
hashCode() - Method in class org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor
+
 
+
+ + + +

I

+
+
ID - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.CONTEXTS
+
 
+
ID - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.DIMENSIONS
+
 
+
+ + + +

L

+
+
label - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.CONTEXTS
+
 
+
LABEL - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.DIMENSIONS
+
 
+
+ + + +

M

+
+
Measure() - Constructor for class org.gcube.data.access.accounting.summary.access.impl.DBStructure.Measure
+
 
+
MEASURE - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.Measure
+
 
+
MeasureResolution - Enum in org.gcube.data.access.accounting.summary.access.model
+
 
+
+ + + +

O

+
+
org.gcube.data.access.accounting.summary.access - package org.gcube.data.access.accounting.summary.access
+
 
+
org.gcube.data.access.accounting.summary.access.impl - package org.gcube.data.access.accounting.summary.access.impl
+
 
+
org.gcube.data.access.accounting.summary.access.model - package org.gcube.data.access.accounting.summary.access.model
+
 
+
org.gcube.data.access.accounting.summary.access.model.internal - package org.gcube.data.access.accounting.summary.access.model.internal
+
 
+
+ + + +

P

+
+
ParameterException - Exception in org.gcube.data.access.accounting.summary.access
+
 
+
ParameterException() - Constructor for exception org.gcube.data.access.accounting.summary.access.ParameterException
+
 
+
ParameterException(String, Throwable, boolean, boolean) - Constructor for exception org.gcube.data.access.accounting.summary.access.ParameterException
+
 
+
ParameterException(String, Throwable) - Constructor for exception org.gcube.data.access.accounting.summary.access.ParameterException
+
 
+
ParameterException(String) - Constructor for exception org.gcube.data.access.accounting.summary.access.ParameterException
+
 
+
ParameterException(Throwable) - Constructor for exception org.gcube.data.access.accounting.summary.access.ParameterException
+
 
+
PortalContextTreeProvider - Class in org.gcube.data.access.accounting.summary.access.impl
+
 
+
PortalContextTreeProvider() - Constructor for class org.gcube.data.access.accounting.summary.access.impl.PortalContextTreeProvider
+
 
+
prepareMeasuresByDimension(ScopeDescriptor, MeasureResolution) - Method in class org.gcube.data.access.accounting.summary.access.impl.Queries
+
+
Prepares a statement for Getting Dim=? in time interval for the scope set + + PS params : + 1- long from + 2- long to + 3- String dimension
+
+
+ + + +

Q

+
+
Queries - Class in org.gcube.data.access.accounting.summary.access.impl
+
 
+
Queries() - Constructor for class org.gcube.data.access.accounting.summary.access.impl.Queries
+
 
+
+ + + +

R

+
+
Record - Class in org.gcube.data.access.accounting.summary.access.model
+
 
+
Record() - Constructor for class org.gcube.data.access.accounting.summary.access.model.Record
+
 
+
Report - Class in org.gcube.data.access.accounting.summary.access.model
+
 
+
Report() - Constructor for class org.gcube.data.access.accounting.summary.access.model.Report
+
 
+
ReportElement - Class in org.gcube.data.access.accounting.summary.access.model
+
 
+
ReportElement() - Constructor for class org.gcube.data.access.accounting.summary.access.model.ReportElement
+
 
+
+ + + +

S

+
+
ScopeDescriptor - Class in org.gcube.data.access.accounting.summary.access.model
+
 
+
ScopeDescriptor() - Constructor for class org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor
+
 
+
Series - Class in org.gcube.data.access.accounting.summary.access.model
+
 
+
Series() - Constructor for class org.gcube.data.access.accounting.summary.access.model.Series
+
 
+
setTreeProvider(ContextTreeProvider) - Method in class org.gcube.data.access.accounting.summary.access.impl.AccountingDaoImpl
+
 
+
+ + + +

T

+
+
TABLENAME - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.CONTEXTS
+
 
+
TABLENAME - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.DIMENSIONS
+
 
+
TABLENAME - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.Measure
+
 
+
TIME - Static variable in class org.gcube.data.access.accounting.summary.access.impl.DBStructure.Measure
+
 
+
toString() - Method in class org.gcube.data.access.accounting.summary.access.model.Report
+
 
+
toString() - Method in class org.gcube.data.access.accounting.summary.access.model.ReportElement
+
 
+
toString() - Method in class org.gcube.data.access.accounting.summary.access.model.Series
+
 
+
+ + + +

V

+
+
valueOf(String) - Static method in enum org.gcube.data.access.accounting.summary.access.model.MeasureResolution
+
+
Returns the enum constant of this type with the specified name.
+
+
values() - Static method in enum org.gcube.data.access.accounting.summary.access.model.MeasureResolution
+
+
Returns an array containing the constants of this enum type, in +the order they are declared.
+
+
+A B C D E G H I L M O P Q R S T V 
+ +
+ + + + + + + +
+ + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/index.html b/target/apidocs/index.html new file mode 100644 index 0000000..f018a17 --- /dev/null +++ b/target/apidocs/index.html @@ -0,0 +1,76 @@ + + + + + + +Accounting Summary Access 0.0.1-SNAPSHOT API + + + + + + + + + +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<h2>Frame Alert</h2> +<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> + + + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/AccountingDao.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/AccountingDao.html new file mode 100644 index 0000000..36108a6 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/AccountingDao.html @@ -0,0 +1,286 @@ + + + + + + +AccountingDao (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access
+

Interface AccountingDao

+
+
+
+
    +
  • +
    +
    All Known Implementing Classes:
    +
    AccountingDaoImpl
    +
    +
    +
    +
    public interface AccountingDao
    +
  • +
+
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/ParameterException.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/ParameterException.html new file mode 100644 index 0000000..1c6047f --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/ParameterException.html @@ -0,0 +1,320 @@ + + + + + + +ParameterException (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access
+

Class ParameterException

+
+
+ +
+ +
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ParameterException

        +
        public ParameterException()
        +
      • +
      + + + +
        +
      • +

        ParameterException

        +
        public ParameterException(String message,
        +                          Throwable cause,
        +                          boolean enableSuppression,
        +                          boolean writableStackTrace)
        +
      • +
      + + + +
        +
      • +

        ParameterException

        +
        public ParameterException(String message,
        +                          Throwable cause)
        +
      • +
      + + + +
        +
      • +

        ParameterException

        +
        public ParameterException(String message)
        +
      • +
      + + + +
        +
      • +

        ParameterException

        +
        public ParameterException(Throwable cause)
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/class-use/AccountingDao.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/class-use/AccountingDao.html new file mode 100644 index 0000000..5d4e735 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/class-use/AccountingDao.html @@ -0,0 +1,192 @@ + + + + + + +Uses of Interface org.gcube.data.access.accounting.summary.access.AccountingDao (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Interface
org.gcube.data.access.accounting.summary.access.AccountingDao

+
+
+ +
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/class-use/ParameterException.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/class-use/ParameterException.html new file mode 100644 index 0000000..8f19ec3 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/class-use/ParameterException.html @@ -0,0 +1,198 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.ParameterException (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.ParameterException

+
+
+ +
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/AccountingDaoImpl.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/AccountingDaoImpl.html new file mode 100644 index 0000000..c8d6804 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/AccountingDaoImpl.html @@ -0,0 +1,347 @@ + + + + + + +AccountingDaoImpl (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.impl
+

Class AccountingDaoImpl

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.impl.AccountingDaoImpl
    • +
    +
  • +
+
+ +
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/BasicConnectionManager.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/BasicConnectionManager.html new file mode 100644 index 0000000..c325247 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/BasicConnectionManager.html @@ -0,0 +1,285 @@ + + + + + + +BasicConnectionManager (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.impl
+

Class BasicConnectionManager

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.impl.BasicConnectionManager
    • +
    +
  • +
+
+ +
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/BasicContextTreeProvider.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/BasicContextTreeProvider.html new file mode 100644 index 0000000..2448be9 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/BasicContextTreeProvider.html @@ -0,0 +1,285 @@ + + + + + + +BasicContextTreeProvider (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.impl
+

Class BasicContextTreeProvider

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.impl.BasicContextTreeProvider
    • +
    +
  • +
+
+ +
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/ConnectionManager.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/ConnectionManager.html new file mode 100644 index 0000000..8a4805c --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/ConnectionManager.html @@ -0,0 +1,232 @@ + + + + + + +ConnectionManager (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.impl
+

Interface ConnectionManager

+
+
+
+ +
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/ContextTreeProvider.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/ContextTreeProvider.html new file mode 100644 index 0000000..58068b7 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/ContextTreeProvider.html @@ -0,0 +1,232 @@ + + + + + + +ContextTreeProvider (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.impl
+

Interface ContextTreeProvider

+
+
+
+ +
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.CONTEXTS.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.CONTEXTS.html new file mode 100644 index 0000000..a0d5830 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.CONTEXTS.html @@ -0,0 +1,317 @@ + + + + + + +DBStructure.CONTEXTS (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.impl
+

Class DBStructure.CONTEXTS

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.impl.DBStructure.CONTEXTS
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    DBStructure
    +
    +
    +
    +
    public static class DBStructure.CONTEXTS
    +extends Object
    +
  • +
+
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.DIMENSIONS.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.DIMENSIONS.html new file mode 100644 index 0000000..fd4eb8b --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.DIMENSIONS.html @@ -0,0 +1,351 @@ + + + + + + +DBStructure.DIMENSIONS (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.impl
+

Class DBStructure.DIMENSIONS

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.impl.DBStructure.DIMENSIONS
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    DBStructure
    +
    +
    +
    +
    public static class DBStructure.DIMENSIONS
    +extends Object
    +
  • +
+
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.Measure.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.Measure.html new file mode 100644 index 0000000..c9c1704 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.Measure.html @@ -0,0 +1,351 @@ + + + + + + +DBStructure.Measure (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.impl
+

Class DBStructure.Measure

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.impl.DBStructure.Measure
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    DBStructure
    +
    +
    +
    +
    public static class DBStructure.Measure
    +extends Object
    +
  • +
+
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.html new file mode 100644 index 0000000..0a621e6 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/DBStructure.html @@ -0,0 +1,266 @@ + + + + + + +DBStructure (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.impl
+

Class DBStructure

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.impl.DBStructure
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class DBStructure
    +extends Object
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        DBStructure

        +
        public DBStructure()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/PortalContextTreeProvider.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/PortalContextTreeProvider.html new file mode 100644 index 0000000..541ce06 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/PortalContextTreeProvider.html @@ -0,0 +1,282 @@ + + + + + + +PortalContextTreeProvider (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.impl
+

Class PortalContextTreeProvider

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.impl.PortalContextTreeProvider
    • +
    +
  • +
+
+ +
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/Queries.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/Queries.html new file mode 100644 index 0000000..631eefa --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/Queries.html @@ -0,0 +1,345 @@ + + + + + + +Queries (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.impl
+

Class Queries

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.impl.Queries
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class Queries
    +extends Object
    +
  • +
+
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/AccountingDaoImpl.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/AccountingDaoImpl.html new file mode 100644 index 0000000..57629e0 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/AccountingDaoImpl.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.impl.AccountingDaoImpl (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.impl.AccountingDaoImpl

+
+
No usage of org.gcube.data.access.accounting.summary.access.impl.AccountingDaoImpl
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/BasicConnectionManager.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/BasicConnectionManager.html new file mode 100644 index 0000000..a3c530b --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/BasicConnectionManager.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.impl.BasicConnectionManager (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.impl.BasicConnectionManager

+
+
No usage of org.gcube.data.access.accounting.summary.access.impl.BasicConnectionManager
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/BasicContextTreeProvider.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/BasicContextTreeProvider.html new file mode 100644 index 0000000..9ca1837 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/BasicContextTreeProvider.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.impl.BasicContextTreeProvider (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.impl.BasicContextTreeProvider

+
+
No usage of org.gcube.data.access.accounting.summary.access.impl.BasicContextTreeProvider
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/ConnectionManager.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/ConnectionManager.html new file mode 100644 index 0000000..74f8e43 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/ConnectionManager.html @@ -0,0 +1,178 @@ + + + + + + +Uses of Interface org.gcube.data.access.accounting.summary.access.impl.ConnectionManager (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Interface
org.gcube.data.access.accounting.summary.access.impl.ConnectionManager

+
+
+ +
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/ContextTreeProvider.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/ContextTreeProvider.html new file mode 100644 index 0000000..2da8297 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/ContextTreeProvider.html @@ -0,0 +1,217 @@ + + + + + + +Uses of Interface org.gcube.data.access.accounting.summary.access.impl.ContextTreeProvider (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Interface
org.gcube.data.access.accounting.summary.access.impl.ContextTreeProvider

+
+
+ +
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.CONTEXTS.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.CONTEXTS.html new file mode 100644 index 0000000..daa2427 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.CONTEXTS.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.impl.DBStructure.CONTEXTS (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.impl.DBStructure.CONTEXTS

+
+
No usage of org.gcube.data.access.accounting.summary.access.impl.DBStructure.CONTEXTS
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.DIMENSIONS.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.DIMENSIONS.html new file mode 100644 index 0000000..dcc7bc5 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.DIMENSIONS.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.impl.DBStructure.DIMENSIONS (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.impl.DBStructure.DIMENSIONS

+
+
No usage of org.gcube.data.access.accounting.summary.access.impl.DBStructure.DIMENSIONS
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.Measure.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.Measure.html new file mode 100644 index 0000000..7498e5e --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.Measure.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.impl.DBStructure.Measure (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.impl.DBStructure.Measure

+
+
No usage of org.gcube.data.access.accounting.summary.access.impl.DBStructure.Measure
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.html new file mode 100644 index 0000000..44682d4 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/DBStructure.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.impl.DBStructure (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.impl.DBStructure

+
+
No usage of org.gcube.data.access.accounting.summary.access.impl.DBStructure
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/PortalContextTreeProvider.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/PortalContextTreeProvider.html new file mode 100644 index 0000000..1bd7061 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/PortalContextTreeProvider.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.impl.PortalContextTreeProvider (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.impl.PortalContextTreeProvider

+
+
No usage of org.gcube.data.access.accounting.summary.access.impl.PortalContextTreeProvider
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/Queries.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/Queries.html new file mode 100644 index 0000000..c56c76b --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/class-use/Queries.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.impl.Queries (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.impl.Queries

+
+
No usage of org.gcube.data.access.accounting.summary.access.impl.Queries
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-frame.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-frame.html new file mode 100644 index 0000000..dfea37c --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +org.gcube.data.access.accounting.summary.access.impl (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + +

org.gcube.data.access.accounting.summary.access.impl

+ + + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-summary.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-summary.html new file mode 100644 index 0000000..90b7f63 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-summary.html @@ -0,0 +1,195 @@ + + + + + + +org.gcube.data.access.accounting.summary.access.impl (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Package org.gcube.data.access.accounting.summary.access.impl

+
+
+ +
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-tree.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-tree.html new file mode 100644 index 0000000..9532c49 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-tree.html @@ -0,0 +1,152 @@ + + + + + + +org.gcube.data.access.accounting.summary.access.impl Class Hierarchy (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Hierarchy For Package org.gcube.data.access.accounting.summary.access.impl

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Interface Hierarchy

+ +
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-use.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-use.html new file mode 100644 index 0000000..f3d1588 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/impl/package-use.html @@ -0,0 +1,181 @@ + + + + + + +Uses of Package org.gcube.data.access.accounting.summary.access.impl (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Package
org.gcube.data.access.accounting.summary.access.impl

+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/Dimension.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/Dimension.html new file mode 100644 index 0000000..21a8640 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/Dimension.html @@ -0,0 +1,239 @@ + + + + + + +Dimension (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.model
+

Class Dimension

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.model.Dimension
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class Dimension
    +extends Object
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Dimension

        +
        public Dimension()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/MeasureResolution.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/MeasureResolution.html new file mode 100644 index 0000000..44865a6 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/MeasureResolution.html @@ -0,0 +1,332 @@ + + + + + + +MeasureResolution (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.model
+

Enum MeasureResolution

+
+
+ +
+ +
+
+ +
+
+
    +
  • + + + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        values

        +
        public static MeasureResolution[] values()
        +
        Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
        +for (MeasureResolution c : MeasureResolution.values())
        +    System.out.println(c);
        +
        +
        +
        Returns:
        +
        an array containing the constants of this enum type, in the order they are declared
        +
        +
      • +
      + + + +
        +
      • +

        valueOf

        +
        public static MeasureResolution valueOf(String name)
        +
        Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
        +
        +
        Parameters:
        +
        name - the name of the enum constant to be returned.
        +
        Returns:
        +
        the enum constant with the specified name
        +
        Throws:
        +
        IllegalArgumentException - if this enum type has no constant with the specified name
        +
        NullPointerException - if the argument is null
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/Record.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/Record.html new file mode 100644 index 0000000..45a464f --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/Record.html @@ -0,0 +1,248 @@ + + + + + + +Record (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.model
+

Class Record

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.model.Record
    • +
    +
  • +
+
+ +
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Record

        +
        public Record()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/Report.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/Report.html new file mode 100644 index 0000000..3e031b4 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/Report.html @@ -0,0 +1,286 @@ + + + + + + +Report (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.model
+

Class Report

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.model.Report
    • +
    +
  • +
+
+ +
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Report

        +
        public Report()
        +
      • +
      +
    • +
    + + +
  • +
+
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/ReportElement.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/ReportElement.html new file mode 100644 index 0000000..a989c37 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/ReportElement.html @@ -0,0 +1,286 @@ + + + + + + +ReportElement (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.model
+

Class ReportElement

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.model.ReportElement
    • +
    +
  • +
+
+ +
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ReportElement

        +
        public ReportElement()
        +
      • +
      +
    • +
    + + +
  • +
+
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/ScopeDescriptor.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/ScopeDescriptor.html new file mode 100644 index 0000000..fca9c24 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/ScopeDescriptor.html @@ -0,0 +1,316 @@ + + + + + + +ScopeDescriptor (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.model
+

Class ScopeDescriptor

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor
    • +
    +
  • +
+
+ +
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ScopeDescriptor

        +
        public ScopeDescriptor()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        hasChildren

        +
        public boolean hasChildren()
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        +
        Overrides:
        +
        hashCode in class Object
        +
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals(Object obj)
        +
        +
        Overrides:
        +
        equals in class Object
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/Series.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/Series.html new file mode 100644 index 0000000..3d54ea3 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/Series.html @@ -0,0 +1,286 @@ + + + + + + +Series (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.model
+

Class Series

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.model.Series
    • +
    +
  • +
+
+ +
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Series

        +
        public Series()
        +
      • +
      +
    • +
    + + +
  • +
+
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Dimension.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Dimension.html new file mode 100644 index 0000000..9c8bc68 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Dimension.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.model.Dimension (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.model.Dimension

+
+
No usage of org.gcube.data.access.accounting.summary.access.model.Dimension
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/MeasureResolution.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/MeasureResolution.html new file mode 100644 index 0000000..93b75d7 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/MeasureResolution.html @@ -0,0 +1,246 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.model.MeasureResolution (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.model.MeasureResolution

+
+
+ +
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Record.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Record.html new file mode 100644 index 0000000..eb00ee1 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Record.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.model.Record (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.model.Record

+
+
No usage of org.gcube.data.access.accounting.summary.access.model.Record
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Report.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Report.html new file mode 100644 index 0000000..0bc35c1 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Report.html @@ -0,0 +1,194 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.model.Report (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.model.Report

+
+
+ +
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/ReportElement.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/ReportElement.html new file mode 100644 index 0000000..49414fa --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/ReportElement.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.model.ReportElement (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.model.ReportElement

+
+
No usage of org.gcube.data.access.accounting.summary.access.model.ReportElement
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/ScopeDescriptor.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/ScopeDescriptor.html new file mode 100644 index 0000000..485dcfa --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/ScopeDescriptor.html @@ -0,0 +1,257 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.model.ScopeDescriptor

+
+
+ +
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Series.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Series.html new file mode 100644 index 0000000..f95adab --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/class-use/Series.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.model.Series (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.model.Series

+
+
No usage of org.gcube.data.access.accounting.summary.access.model.Series
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/Dimension.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/Dimension.html new file mode 100644 index 0000000..2a31392 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/Dimension.html @@ -0,0 +1,239 @@ + + + + + + +Dimension (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + + +
+
org.gcube.data.access.accounting.summary.access.model.internal
+

Class Dimension

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.gcube.data.access.accounting.summary.access.model.internal.Dimension
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class Dimension
    +extends Object
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        Dimension

        +
        public Dimension()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/class-use/Dimension.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/class-use/Dimension.html new file mode 100644 index 0000000..c0405b3 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/class-use/Dimension.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.gcube.data.access.accounting.summary.access.model.internal.Dimension (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.gcube.data.access.accounting.summary.access.model.internal.Dimension

+
+
No usage of org.gcube.data.access.accounting.summary.access.model.internal.Dimension
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-frame.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-frame.html new file mode 100644 index 0000000..68fbd75 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-frame.html @@ -0,0 +1,21 @@ + + + + + + +org.gcube.data.access.accounting.summary.access.model.internal (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + +

org.gcube.data.access.accounting.summary.access.model.internal

+
+

Classes

+ +
+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-summary.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-summary.html new file mode 100644 index 0000000..db7d5e8 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-summary.html @@ -0,0 +1,144 @@ + + + + + + +org.gcube.data.access.accounting.summary.access.model.internal (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Package org.gcube.data.access.accounting.summary.access.model.internal

+
+
+
    +
  • + + + + + + + + + + + + +
    Class Summary 
    ClassDescription
    Dimension 
    +
  • +
+
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-tree.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-tree.html new file mode 100644 index 0000000..85dcffe --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-tree.html @@ -0,0 +1,139 @@ + + + + + + +org.gcube.data.access.accounting.summary.access.model.internal Class Hierarchy (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Hierarchy For Package org.gcube.data.access.accounting.summary.access.model.internal

+Package Hierarchies: + +
+
+

Class Hierarchy

+
    +
  • java.lang.Object +
      +
    • org.gcube.data.access.accounting.summary.access.model.internal.Dimension
    • +
    +
  • +
+
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-use.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-use.html new file mode 100644 index 0000000..0ecac8a --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/internal/package-use.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Package org.gcube.data.access.accounting.summary.access.model.internal (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Package
org.gcube.data.access.accounting.summary.access.model.internal

+
+
No usage of org.gcube.data.access.accounting.summary.access.model.internal
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-frame.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-frame.html new file mode 100644 index 0000000..8ad56f2 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-frame.html @@ -0,0 +1,29 @@ + + + + + + +org.gcube.data.access.accounting.summary.access.model (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + +

org.gcube.data.access.accounting.summary.access.model

+ + + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-summary.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-summary.html new file mode 100644 index 0000000..402d101 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-summary.html @@ -0,0 +1,175 @@ + + + + + + +org.gcube.data.access.accounting.summary.access.model (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Package org.gcube.data.access.accounting.summary.access.model

+
+
+ +
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-tree.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-tree.html new file mode 100644 index 0000000..d84bb28 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-tree.html @@ -0,0 +1,155 @@ + + + + + + +org.gcube.data.access.accounting.summary.access.model Class Hierarchy (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Hierarchy For Package org.gcube.data.access.accounting.summary.access.model

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Enum Hierarchy

+ +
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-use.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-use.html new file mode 100644 index 0000000..8b0eb97 --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/model/package-use.html @@ -0,0 +1,209 @@ + + + + + + +Uses of Package org.gcube.data.access.accounting.summary.access.model (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Package
org.gcube.data.access.accounting.summary.access.model

+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/package-frame.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/package-frame.html new file mode 100644 index 0000000..2eb99ef --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/package-frame.html @@ -0,0 +1,25 @@ + + + + + + +org.gcube.data.access.accounting.summary.access (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + +

org.gcube.data.access.accounting.summary.access

+
+

Interfaces

+ +

Exceptions

+ +
+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/package-summary.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/package-summary.html new file mode 100644 index 0000000..4470bce --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/package-summary.html @@ -0,0 +1,159 @@ + + + + + + +org.gcube.data.access.accounting.summary.access (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Package org.gcube.data.access.accounting.summary.access

+
+
+
    +
  • + + + + + + + + + + + + +
    Interface Summary 
    InterfaceDescription
    AccountingDao 
    +
  • +
  • + + + + + + + + + + + + +
    Exception Summary 
    ExceptionDescription
    ParameterException 
    +
  • +
+
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/package-tree.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/package-tree.html new file mode 100644 index 0000000..b122caf --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/package-tree.html @@ -0,0 +1,151 @@ + + + + + + +org.gcube.data.access.accounting.summary.access Class Hierarchy (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Hierarchy For Package org.gcube.data.access.accounting.summary.access

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Interface Hierarchy

+
    +
  • org.gcube.data.access.accounting.summary.access.AccountingDao
  • +
+
+ + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/org/gcube/data/access/accounting/summary/access/package-use.html b/target/apidocs/org/gcube/data/access/accounting/summary/access/package-use.html new file mode 100644 index 0000000..b59db1c --- /dev/null +++ b/target/apidocs/org/gcube/data/access/accounting/summary/access/package-use.html @@ -0,0 +1,184 @@ + + + + + + +Uses of Package org.gcube.data.access.accounting.summary.access (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Package
org.gcube.data.access.accounting.summary.access

+
+ + + + + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/overview-frame.html b/target/apidocs/overview-frame.html new file mode 100644 index 0000000..29f52c4 --- /dev/null +++ b/target/apidocs/overview-frame.html @@ -0,0 +1,25 @@ + + + + + + +Overview List (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + +

 

+ + diff --git a/target/apidocs/overview-summary.html b/target/apidocs/overview-summary.html new file mode 100644 index 0000000..dd113b9 --- /dev/null +++ b/target/apidocs/overview-summary.html @@ -0,0 +1,152 @@ + + + + + + +Overview (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + +
+

Accounting Summary Access 0.0.1-SNAPSHOT API

+
+ + +
+ + + + + + + +
+ + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/overview-tree.html b/target/apidocs/overview-tree.html new file mode 100644 index 0000000..8d58c8c --- /dev/null +++ b/target/apidocs/overview-tree.html @@ -0,0 +1,183 @@ + + + + + + +Class Hierarchy (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + + +
+

Class Hierarchy

+ +

Interface Hierarchy

+ +

Enum Hierarchy

+ +
+ +
+ + + + + + + +
+ + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/package-list b/target/apidocs/package-list new file mode 100644 index 0000000..8d88707 --- /dev/null +++ b/target/apidocs/package-list @@ -0,0 +1,4 @@ +org.gcube.data.access.accounting.summary.access +org.gcube.data.access.accounting.summary.access.impl +org.gcube.data.access.accounting.summary.access.model +org.gcube.data.access.accounting.summary.access.model.internal diff --git a/target/apidocs/script.js b/target/apidocs/script.js new file mode 100644 index 0000000..b346356 --- /dev/null +++ b/target/apidocs/script.js @@ -0,0 +1,30 @@ +function show(type) +{ + count = 0; + for (var key in methods) { + var row = document.getElementById(key); + if ((methods[key] & type) != 0) { + row.style.display = ''; + row.className = (count++ % 2) ? rowColor : altColor; + } + else + row.style.display = 'none'; + } + updateTabs(type); +} + +function updateTabs(type) +{ + for (var value in tabs) { + var sNode = document.getElementById(tabs[value][0]); + var spanNode = sNode.firstChild; + if (value == type) { + sNode.className = activeTableTab; + spanNode.innerHTML = tabs[value][1]; + } + else { + sNode.className = tableTab; + spanNode.innerHTML = "" + tabs[value][1] + ""; + } + } +} diff --git a/target/apidocs/serialized-form.html b/target/apidocs/serialized-form.html new file mode 100644 index 0000000..5b67d3d --- /dev/null +++ b/target/apidocs/serialized-form.html @@ -0,0 +1,286 @@ + + + + + + +Serialized Form (Accounting Summary Access 0.0.1-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + +
+

Serialized Form

+
+
+ +
+ +
+ + + + + + + +
+ + +

Copyright © 2018. All Rights Reserved.

+ + diff --git a/target/apidocs/stylesheet.css b/target/apidocs/stylesheet.css new file mode 100644 index 0000000..98055b2 --- /dev/null +++ b/target/apidocs/stylesheet.css @@ -0,0 +1,574 @@ +/* Javadoc style sheet */ +/* +Overall document style +*/ + +@import url('resources/fonts/dejavu.css'); + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a:hover, a:focus { + text-decoration:none; + color:#bb7a2a; +} +a:active { + text-decoration:none; + color:#4A6782; +} +a[name] { + color:#353833; +} +a[name]:hover { + text-decoration:none; + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; + font-style:italic; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +table tr td dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +/* +Document title and Copyright styles +*/ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:11px; + z-index:200; + margin-top:-9px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* +Navigation bar styles +*/ +.bar { + background-color:#4D7A97; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:11px; + margin:0; +} +.topNav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.bottomNav { + margin-top:10px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.subNav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +ul.subNavList li{ + list-style:none; + float:left; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.navBarCell1Rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skipNav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* +Page header and footer styles +*/ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexHeader { + margin:10px; + position:relative; +} +.indexHeader span{ + margin-right:15px; +} +.indexHeader h1 { + font-size:13px; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* +Heading styles +*/ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* +Page layout container styles +*/ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:12px; +} +.indexContainer h2 { + font-size:13px; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; + padding-top:2px; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:5px 0 10px 0px; + font-size:14px; + font-family:'DejaVu Sans Mono',monospace; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* +List styles +*/ +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #ededed; + background-color:#f8f8f8; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* +Table styles +*/ +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { + width:100%; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.overviewSummary, .memberSummary { + padding:0px; +} +.overviewSummary caption, .memberSummary caption, .typeSummary caption, +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, +.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, +.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, +.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, +.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +.memberSummary caption span.activeTableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#F8981D; + height:16px; +} +.memberSummary caption span.tableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#4D7A97; + height:16px; +} +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { + padding-top:0px; + padding-left:0px; + padding-right:0px; + background-image:none; + float:none; + display:inline; +} +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { + display:none; + width:5px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .activeTableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .tableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + background-color:#4D7A97; + float:left; + +} +.overviewSummary td, .memberSummary td, .typeSummary td, +.useSummary td, .constantsSummary td, .deprecatedSummary td { + text-align:left; + padding:0px 0px 12px 10px; +} +th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, +td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ + vertical-align:top; + padding-right:0px; + padding-top:8px; + padding-bottom:3px; +} +th.colFirst, th.colLast, th.colOne, .constantsSummary th { + background:#dee3e9; + text-align:left; + padding:8px 3px 3px 7px; +} +td.colFirst, th.colFirst { + white-space:nowrap; + font-size:13px; +} +td.colLast, th.colLast { + font-size:13px; +} +td.colOne, th.colOne { + font-size:13px; +} +.overviewSummary td.colFirst, .overviewSummary th.colFirst, +.useSummary td.colFirst, .useSummary th.colFirst, +.overviewSummary td.colOne, .overviewSummary th.colOne, +.memberSummary td.colFirst, .memberSummary th.colFirst, +.memberSummary td.colOne, .memberSummary th.colOne, +.typeSummary td.colFirst{ + width:25%; + vertical-align:top; +} +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { + font-weight:bold; +} +.tableSubHeadingColor { + background-color:#EEEEFF; +} +.altColor { + background-color:#FFFFFF; +} +.rowColor { + background-color:#EEEEEF; +} +/* +Content styles +*/ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} + +ul.blockList ul.blockList ul.blockList li.blockList h3 { + font-style:normal; +} + +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} + +td.colLast div { + padding-top:0px; +} + + +td.colLast a { + padding-bottom:3px; +} +/* +Formatting effect styles +*/ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:3px 10px 2px 0px; + color:#474747; +} +.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, +.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, +.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { + font-weight:bold; +} +.deprecationComment, .emphasizedPhrase, .interfaceName { + font-style:italic; +} + +div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, +div.block div.block span.interfaceName { + font-style:normal; +} + +div.contentContainer ul.blockList li.blockList h2{ + padding-bottom:0px; +} diff --git a/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml b/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml new file mode 100644 index 0000000..8b89c97 --- /dev/null +++ b/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml @@ -0,0 +1,10 @@ + + + + + + + + + src/main/javadoc + diff --git a/target/javadoc-bundle-options/package-list b/target/javadoc-bundle-options/package-list new file mode 100644 index 0000000..42c9b95 --- /dev/null +++ b/target/javadoc-bundle-options/package-list @@ -0,0 +1,203 @@ +java.applet +java.awt +java.awt.color +java.awt.datatransfer +java.awt.dnd +java.awt.event +java.awt.font +java.awt.geom +java.awt.im +java.awt.im.spi +java.awt.image +java.awt.image.renderable +java.awt.print +java.beans +java.beans.beancontext +java.io +java.lang +java.lang.annotation +java.lang.instrument +java.lang.management +java.lang.ref +java.lang.reflect +java.math +java.net +java.nio +java.nio.channels +java.nio.channels.spi +java.nio.charset +java.nio.charset.spi +java.rmi +java.rmi.activation +java.rmi.dgc +java.rmi.registry +java.rmi.server +java.security +java.security.acl +java.security.cert +java.security.interfaces +java.security.spec +java.sql +java.text +java.text.spi +java.util +java.util.concurrent +java.util.concurrent.atomic +java.util.concurrent.locks +java.util.jar +java.util.logging +java.util.prefs +java.util.regex +java.util.spi +java.util.zip +javax.accessibility +javax.activation +javax.activity +javax.annotation +javax.annotation.processing +javax.crypto +javax.crypto.interfaces +javax.crypto.spec +javax.imageio +javax.imageio.event +javax.imageio.metadata +javax.imageio.plugins.bmp +javax.imageio.plugins.jpeg +javax.imageio.spi +javax.imageio.stream +javax.jws +javax.jws.soap +javax.lang.model +javax.lang.model.element +javax.lang.model.type +javax.lang.model.util +javax.management +javax.management.loading +javax.management.modelmbean +javax.management.monitor +javax.management.openmbean +javax.management.relation +javax.management.remote +javax.management.remote.rmi +javax.management.timer +javax.naming +javax.naming.directory +javax.naming.event +javax.naming.ldap +javax.naming.spi +javax.net +javax.net.ssl +javax.print +javax.print.attribute +javax.print.attribute.standard +javax.print.event +javax.rmi +javax.rmi.CORBA +javax.rmi.ssl +javax.script +javax.security.auth +javax.security.auth.callback +javax.security.auth.kerberos +javax.security.auth.login +javax.security.auth.spi +javax.security.auth.x500 +javax.security.cert +javax.security.sasl +javax.sound.midi +javax.sound.midi.spi +javax.sound.sampled +javax.sound.sampled.spi +javax.sql +javax.sql.rowset +javax.sql.rowset.serial +javax.sql.rowset.spi +javax.swing +javax.swing.border +javax.swing.colorchooser +javax.swing.event +javax.swing.filechooser +javax.swing.plaf +javax.swing.plaf.basic +javax.swing.plaf.metal +javax.swing.plaf.multi +javax.swing.plaf.synth +javax.swing.table +javax.swing.text +javax.swing.text.html +javax.swing.text.html.parser +javax.swing.text.rtf +javax.swing.tree +javax.swing.undo +javax.tools +javax.transaction +javax.transaction.xa +javax.xml +javax.xml.bind +javax.xml.bind.annotation +javax.xml.bind.annotation.adapters +javax.xml.bind.attachment +javax.xml.bind.helpers +javax.xml.bind.util +javax.xml.crypto +javax.xml.crypto.dom +javax.xml.crypto.dsig +javax.xml.crypto.dsig.dom +javax.xml.crypto.dsig.keyinfo +javax.xml.crypto.dsig.spec +javax.xml.datatype +javax.xml.namespace +javax.xml.parsers +javax.xml.soap +javax.xml.stream +javax.xml.stream.events +javax.xml.stream.util +javax.xml.transform +javax.xml.transform.dom +javax.xml.transform.sax +javax.xml.transform.stax +javax.xml.transform.stream +javax.xml.validation +javax.xml.ws +javax.xml.ws.handler +javax.xml.ws.handler.soap +javax.xml.ws.http +javax.xml.ws.soap +javax.xml.ws.spi +javax.xml.ws.wsaddressing +javax.xml.xpath +org.ietf.jgss +org.omg.CORBA +org.omg.CORBA.DynAnyPackage +org.omg.CORBA.ORBPackage +org.omg.CORBA.TypeCodePackage +org.omg.CORBA.portable +org.omg.CORBA_2_3 +org.omg.CORBA_2_3.portable +org.omg.CosNaming +org.omg.CosNaming.NamingContextExtPackage +org.omg.CosNaming.NamingContextPackage +org.omg.Dynamic +org.omg.DynamicAny +org.omg.DynamicAny.DynAnyFactoryPackage +org.omg.DynamicAny.DynAnyPackage +org.omg.IOP +org.omg.IOP.CodecFactoryPackage +org.omg.IOP.CodecPackage +org.omg.Messaging +org.omg.PortableInterceptor +org.omg.PortableInterceptor.ORBInitInfoPackage +org.omg.PortableServer +org.omg.PortableServer.CurrentPackage +org.omg.PortableServer.POAManagerPackage +org.omg.PortableServer.POAPackage +org.omg.PortableServer.ServantLocatorPackage +org.omg.PortableServer.portable +org.omg.SendingContext +org.omg.stub.java.rmi +org.w3c.dom +org.w3c.dom.bootstrap +org.w3c.dom.events +org.w3c.dom.ls +org.xml.sax +org.xml.sax.ext +org.xml.sax.helpers \ No newline at end of file diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 0000000..b664f87 --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Tue Jul 03 15:46:52 CEST 2018 +version=0.0.1-SNAPSHOT +groupId=org.gcube.data.access +artifactId=accounting-summary-access diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..3d6e6ee --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1 @@ +org/gcube/data/access/accounting/summary/access/impl/AccountingDaoImpl$1.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..eb0854a --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,17 @@ +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/impl/ConnectionManager.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/model/Series.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/impl/ContextTreeProvider.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/ParameterException.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/model/Report.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/impl/BasicConnectionManager.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/AccountingDao.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/impl/BasicContextTreeProvider.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/model/internal/Dimension.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/model/ScopeDescriptor.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/impl/AccountingDaoImpl.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/impl/DBStructure.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/model/ReportElement.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/impl/Queries.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/model/Record.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/impl/PortalContextTreeProvider.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/main/java/org/gcube/data/access/accounting/summary/access/model/MeasureResolution.java diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..bedab19 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -0,0 +1,4 @@ +/home/fabio/workspaces/DEV/accounting-summary-access/src/test/java/org/gcube/data/access/accounting/summary/access/test/DummyContextTreeProvider.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/test/java/org/gcube/data/access/accounting/summary/access/utils/Importer.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/test/java/org/gcube/data/access/accounting/summary/access/test/TokenSetter.java +/home/fabio/workspaces/DEV/accounting-summary-access/src/test/java/org/gcube/data/access/accounting/summary/access/test/SimpleTest.java