diff options
author | Valerij Fredriksen <valerijf@oath.com> | 2018-09-11 17:28:18 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@oath.com> | 2018-09-11 17:28:18 +0200 |
commit | 24906dc9b8ecf0c1e4bd2da3cee1d63b1f5a6210 (patch) | |
tree | e7cecb570c7693305c0e4396930931a2883f6807 /node-admin/src/main | |
parent | 795a89947b90c959a69a3d4767c1f3aa188e7a3c (diff) |
Add isSubsetOf to YumPackageName
Diffstat (limited to 'node-admin/src/main')
-rw-r--r-- | node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/YumPackageName.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/YumPackageName.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/YumPackageName.java index 137ad31ec82..a3a154e2175 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/YumPackageName.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/YumPackageName.java @@ -1,6 +1,8 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.node.admin.task.util.yum; +import com.google.common.base.Strings; + import java.util.Arrays; import java.util.Objects; import java.util.Optional; @@ -56,6 +58,8 @@ public class YumPackageName { private Optional<String> release = Optional.empty(); private Optional<String> architecture = Optional.empty(); + public Builder() { } + public Builder(String name) { this.name = name; } @@ -83,6 +87,9 @@ public class YumPackageName { Optional<String> version, Optional<String> release, Optional<String> architecture) { + if (Strings.isNullOrEmpty(name)) + throw new IllegalArgumentException("name cannot be null or empty"); + this.epoch = epoch; this.name = name; this.version = version; @@ -235,6 +242,14 @@ public class YumPackageName { "*"); } + public boolean isSubsetOf(YumPackageName other) { + return Objects.equals(name, other.name) && + (!epoch.isPresent() || Objects.equals(epoch, other.epoch)) && + (!version.isPresent() || Objects.equals(version, other.version)) && + (!release.isPresent() || Objects.equals(release, other.release)) && + (!architecture.isPresent() || Objects.equals(architecture, other.architecture)); + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -249,7 +264,6 @@ public class YumPackageName { @Override public int hashCode() { - return Objects.hash(epoch, name, version, release, architecture); } } |