aboutsummaryrefslogtreecommitdiff
path: root/src/gradlecomp/java/com/amadornes/artifactural/gradle/GradleArtifact.java
blob: b1fc53749dbc42956805103e90fea1d4c2bb261e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*
 * Artifactural
 * Copyright (c) 2018.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation version 2.1
 * of the License.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

package com.amadornes.artifactural.gradle;

import com.amadornes.artifactural.api.artifact.Artifact;
import com.amadornes.artifactural.api.artifact.ArtifactIdentifier;
import com.amadornes.artifactural.api.artifact.ArtifactType;
import com.amadornes.artifactural.base.artifact.StreamableArtifact;

import java.io.File;
import java.util.Set;

public class GradleArtifact {

    public static Artifact maven(DependencyResolver resolver, ArtifactIdentifier identifier, ArtifactType type) {
        Set<File> files = resolver.resolveDependency(
                identifier.getGroup()
                        + ":" + identifier.getName()
                        + ":" + identifier.getVersion()
                        + (identifier.getClassifier().isEmpty() ? "" : ":" + identifier.getClassifier())
                        + (identifier.getExtension().isEmpty() ? "" : "@" + identifier.getExtension()),
                false
        );
        if (files.isEmpty()) return Artifact.none();
        return StreamableArtifact.ofFile(identifier, type, files.iterator().next());
    }

}