package com.revolsys.maven; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import com.revolsys.collection.map.MapEx; public class Dependency extends GroupArtifactVersion { private final MavenPom parentPom; private boolean optional = false; public Dependency(final MavenPom parentPom, final MapEx dependency) { this.parentPom = parentPom; // final String version = getMapValue(dependency, "version", null); // setVersion(version); // dependency.remove("version"); setProperties(dependency); updateGroupArtifactVersion(); } public Set<String> getExclusionIds() { final Set<String> exclusionIds = new LinkedHashSet<>(); final MapEx exclusionsMap = (MapEx)getProperty("exclusions"); if (exclusionsMap != null) { final List<MapEx> exclusionsList = MavenPom.getList(exclusionsMap, "exclusion"); if (exclusionsList != null) { for (final MapEx exclusion : exclusionsList) { final String groupId = this.parentPom.getMapValue(exclusion, "groupId", null); final String artifactId = this.parentPom.getMapValue(exclusion, "artifactId", null); final String exclusionId = groupId + ":" + artifactId; exclusionIds.add(exclusionId); } } } return exclusionIds; } public MavenPom getMavenPom() { final MavenRepository mavenRepository = this.parentPom.getMavenRepository(); final String groupArtifactVersion = getGroupArtifactVersion(); return mavenRepository.getPom(groupArtifactVersion); } public MavenPom getParentPom() { return this.parentPom; } @Override protected MapEx getPomProperties() { return this.parentPom.getPomProperties(); } public boolean isOptional() { return this.optional; } public void setOptional(final boolean optional) { this.optional = optional; } }