From: Mathieu Baudier Date: Sat, 28 May 2022 09:30:38 +0000 (+0200) Subject: Make A2 API more public. X-Git-Tag: v2.3.10~216 X-Git-Url: https://git.argeo.org/?a=commitdiff_plain;h=9fad2d8a577f017de8365265a4881dabc1e4ed3f;p=lgpl%2Fargeo-commons.git Make A2 API more public. --- diff --git a/org.argeo.init/src/org/argeo/init/a2/A2Branch.java b/org.argeo.init/src/org/argeo/init/a2/A2Branch.java index 9713d01d3..cd8d89541 100644 --- a/org.argeo.init/src/org/argeo/init/a2/A2Branch.java +++ b/org.argeo.init/src/org/argeo/init/a2/A2Branch.java @@ -24,6 +24,10 @@ public class A2Branch implements Comparable { component.branches.put(id, this); } + public Iterable listModules(Object filter) { + return modules.values(); + } + A2Module getOrAddModule(Version version, Object locator) { if (modules.containsKey(version)) { A2Module res = modules.get(version); @@ -35,19 +39,19 @@ public class A2Branch implements Comparable { return new A2Module(this, version, locator); } - A2Module last() { + public A2Module last() { return modules.get(modules.lastKey()); } - A2Module first() { + public A2Module first() { return modules.get(modules.firstKey()); } - A2Component getComponent() { + public A2Component getComponent() { return component; } - String getId() { + public String getId() { return id; } diff --git a/org.argeo.init/src/org/argeo/init/a2/A2Component.java b/org.argeo.init/src/org/argeo/init/a2/A2Component.java index 2b6814f6b..cc2f56471 100644 --- a/org.argeo.init/src/org/argeo/init/a2/A2Component.java +++ b/org.argeo.init/src/org/argeo/init/a2/A2Component.java @@ -23,6 +23,10 @@ public class A2Component implements Comparable { contribution.components.put(id, this); } + public Iterable listBranches(Object filter) { + return branches.values(); + } + A2Branch getOrAddBranch(String branchId) { if (branches.containsKey(branchId)) return branches.get(branchId); @@ -36,15 +40,15 @@ public class A2Component implements Comparable { return module; } - A2Branch last() { + public A2Branch last() { return branches.get(branches.lastKey()); } - A2Contribution getContribution() { + public A2Contribution getContribution() { return contribution; } - String getId() { + public String getId() { return id; } diff --git a/org.argeo.init/src/org/argeo/init/a2/A2Contribution.java b/org.argeo.init/src/org/argeo/init/a2/A2Contribution.java index 3d33b55e2..9d1348294 100644 --- a/org.argeo.init/src/org/argeo/init/a2/A2Contribution.java +++ b/org.argeo.init/src/org/argeo/init/a2/A2Contribution.java @@ -30,6 +30,10 @@ public class A2Contribution implements Comparable { // context.contributions.put(id, this); } + public Iterable listComponents(Object filter) { + return components.values(); + } + A2Component getOrAddComponent(String componentId) { if (components.containsKey(componentId)) return components.get(componentId); diff --git a/org.argeo.init/src/org/argeo/init/a2/A2Module.java b/org.argeo.init/src/org/argeo/init/a2/A2Module.java index b862c5435..0b6d3a91c 100644 --- a/org.argeo.init/src/org/argeo/init/a2/A2Module.java +++ b/org.argeo.init/src/org/argeo/init/a2/A2Module.java @@ -7,7 +7,7 @@ import org.osgi.framework.Version; * Bundle-SymbolicName and Bundle-version. This is the * equivalent of the full coordinates of a Maven artifact version. */ -class A2Module implements Comparable { +public class A2Module implements Comparable { private final A2Branch branch; private final Version version; private final Object locator; @@ -19,11 +19,11 @@ class A2Module implements Comparable { branch.modules.put(version, this); } - A2Branch getBranch() { + public A2Branch getBranch() { return branch; } - Version getVersion() { + public Version getVersion() { return version; } diff --git a/org.argeo.init/src/org/argeo/init/a2/A2Source.java b/org.argeo.init/src/org/argeo/init/a2/A2Source.java index 388a85012..c28df3b23 100644 --- a/org.argeo.init/src/org/argeo/init/a2/A2Source.java +++ b/org.argeo.init/src/org/argeo/init/a2/A2Source.java @@ -1,7 +1,11 @@ package org.argeo.init.a2; +import java.net.URI; + /** A provisioning source in A2 format. */ public interface A2Source extends ProvisioningSource { final static String SCHEME_A2 = "a2"; final static String DEFAULT_A2_URI = SCHEME_A2 + ":///"; + + URI getUri(); } diff --git a/org.argeo.init/src/org/argeo/init/a2/FsA2Source.java b/org.argeo.init/src/org/argeo/init/a2/FsA2Source.java index 067537d59..eb00659dc 100644 --- a/org.argeo.init/src/org/argeo/init/a2/FsA2Source.java +++ b/org.argeo.init/src/org/argeo/init/a2/FsA2Source.java @@ -1,6 +1,8 @@ package org.argeo.init.a2; import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; @@ -16,7 +18,6 @@ public class FsA2Source extends AbstractProvisioningSource implements A2Source { private final Path base; public FsA2Source(Path base) { - super(); this.base = base; } @@ -75,6 +76,20 @@ public class FsA2Source extends AbstractProvisioningSource implements A2Source { } + @Override + public URI getUri() { + URI baseUri = base.toUri(); + try { + if (baseUri.getScheme().equals("file")) { + return new URI(SCHEME_A2, null, base.toString(), null); + } else { + throw new UnsupportedOperationException("Unsupported scheme " + baseUri.getScheme()); + } + } catch (URISyntaxException e) { + throw new IllegalStateException("Cannot build URI from " + baseUri, e); + } + } + public static void main(String[] args) { try { FsA2Source context = new FsA2Source(Paths.get(