package jp.co.worksap.workspace.packagemanagement; import static com.google.common.base.Preconditions.checkState; import javax.annotation.Nonnull; import javax.annotation.Nullable; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.Setter; import com.google.common.base.Optional; @Data @Setter(value = AccessLevel.PRIVATE) @NoArgsConstructor @AllArgsConstructor public final class Package { @Nullable private String name; /** * @see https://github.com/chocolatey/chocolatey/wiki/CommandsInstall#version-optional */ @Nullable private String version; @Nonnull public static Package of(@Nonnull String name) { return new Package(name, null); } @Nonnull public static Package of(@Nonnull String name, @Nullable String version) { return new Package(name, version); } public String getName() { checkState(name != null); return name; } public Optional<String> getVersion() { return Optional.fromNullable(version); } }