GitlabModelPackageVariant.java

package org.jmad.modelpack.connect.gitlab.domain;

import org.jmad.modelpack.domain.ModelPackageVariant;

import java.io.UnsupportedEncodingException;
import java.net.URI;

import static java.net.URLEncoder.encode;

public class GitlabModelPackageVariant extends ModelPackageVariant {
    public GitlabModelPackageVariant(GitlabModelPackage modelPackage, GitlabVariant variant) {
        super(buildGitlabUri(modelPackage, variant), modelPackage, variant);
    }

    private static URI buildGitlabUri(GitlabModelPackage modelPackage, GitlabVariant variant) {
        return URI.create(modelPackage.uri().toASCIIString() + "@" + encodedVariant(variant));
    }

    private static String encodedVariant(GitlabVariant variant) {
        try {
            return encode(variant.name(), "UTF-8");
        } catch (UnsupportedEncodingException e) {
            throw new IllegalStateException(e);
        }
    }
}