Примерно так может работать, если в вашем случае есть одноуровневая вложенная зависимость:
Базовый Artifact
класс:
class Artifact {
protected String name;
protected String version;
public Artifact(String name, String version) {
this.name = name;
this.version = version;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
}
Класс * Package
, который расширяетсяArtifact
и добавляет еще один параметр uses
:
class Package extends Artifact {
public Package(String name, String version, List<Artifact> uses) {
super(name, version);
this.uses = uses;
}
private List<Artifact> uses;
public List<Artifact> getUses() {
return uses;
}
public void setUses(List<Artifact> uses) {
this.uses = uses;
}
}
Затем его можно сохранить как List
или Map
, если необходимо.
Пример использования в Map
:
Map<String, Package> map = new HashMap<>();
map.put("package1", new Package("org.orchestr.something", "5.1.3", Arrays.asList(
new Artifact("org.do.resource", "1.2.1"),
new Artifact("org.test.summer", "1.5.2")))
);
map.put("package2", new Package("fr.test.something", "5.1.3", Arrays.asList(
new Artifact("com.java.rest", "1.0.1"),
new Artifact("org.osgi.summer", "1.4.2")))
);