2022-07-31 20:41:56 +02:00
/*
2022-07-30 15:21:11 +02:00
* Copyright (C) 2022 FalsePattern
* All Rights Reserved
*
* The above copyright notice, this permission notice and the word "SNEED"
* shall be included in all copies or substantial portions of the Software.
*
* This program 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, either version 3 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
2022-05-06 13:39:00 +02:00
package com.falsepattern.lib.dependencies ;
2022-08-06 14:18:18 +02:00
import com.falsepattern.lib.DeprecationDetails ;
2022-05-06 23:53:11 +02:00
import com.falsepattern.lib.StableAPI ;
2022-08-06 14:18:18 +02:00
import com.falsepattern.lib.internal.FalsePatternLib ;
2022-07-24 23:33:36 +02:00
import com.falsepattern.lib.internal.impl.dependencies.DependencyLoaderImpl ;
import lombok.NonNull ;
2022-05-06 13:39:00 +02:00
2022-08-06 14:18:18 +02:00
import java.util.concurrent.CompletableFuture ;
2022-05-06 13:39:00 +02:00
2022-05-06 23:53:11 +02:00
@StableAPI ( since = "0.6.0" )
2022-05-06 13:39:00 +02:00
public class DependencyLoader {
2022-08-06 13:12:55 +02:00
@StableAPI.Expose
2022-05-06 13:39:00 +02:00
public static void addMavenRepo ( String url ) {
2022-07-24 23:33:36 +02:00
DependencyLoaderImpl . addMavenRepo ( url );
2022-05-06 13:39:00 +02:00
}
2022-08-06 14:18:18 +02:00
@StableAPI.Expose ( since = "0.10.0" )
public static CompletableFuture < Void > loadLibrariesAsync ( Library ... libraries ) {
return DependencyLoaderImpl . loadLibrariesAsync ( libraries );
}
@StableAPI.Expose ( since = "0.10.0" )
public static void loadLibraries ( Library ... libraries ) {
DependencyLoaderImpl . loadLibraries ( libraries );
}
@Deprecated
@DeprecationDetails ( deprecatedSince = "0.10.0" )
2022-08-06 13:12:55 +02:00
@StableAPI.Expose
2022-07-31 20:41:56 +02:00
public static void loadLibrary ( @NonNull String loadingModId , @NonNull String groupId , @NonNull String artifactId , @NonNull Version minVersion , Version maxVersion , @NonNull Version preferredVersion , String regularSuffix , String devSuffix ) {
2022-08-06 14:18:18 +02:00
FalsePatternLib . getLog (). warn ( DependencyLoader . class . getName () + ".loadLibrary is deprecated and will be removed in FalsePatternLib 0.11! Use loadLibraries instead!" );
2022-07-24 23:33:36 +02:00
DependencyLoaderImpl . loadLibrary ( loadingModId , groupId , artifactId , minVersion , maxVersion , preferredVersion ,
regularSuffix , devSuffix );
2022-05-06 13:39:00 +02:00
}
2022-08-06 14:18:18 +02:00
@DeprecationDetails ( deprecatedSince = "0.10.0" )
@StableAPI.Expose
@Deprecated
public static VoidBuilder builder () {
return new VoidBuilder ();
}
@StableAPI ( since = "0.6.0" )
@DeprecationDetails ( deprecatedSince = "0.10.0" )
public static class VoidBuilder {
private String loadingModId ;
private String groupId ;
private String artifactId ;
private Version minVersion ;
private Version maxVersion ;
private Version preferredVersion ;
private String regularSuffix ;
private String devSuffix ;
@Deprecated
VoidBuilder () {
}
@StableAPI.Expose
@Deprecated
public VoidBuilder loadingModId ( @NonNull String loadingModId ) {
this . loadingModId = loadingModId ;
return this ;
}
@StableAPI.Expose
@Deprecated
public VoidBuilder groupId ( @NonNull String groupId ) {
this . groupId = groupId ;
return this ;
}
@StableAPI.Expose
@Deprecated
public VoidBuilder artifactId ( @NonNull String artifactId ) {
this . artifactId = artifactId ;
return this ;
}
@StableAPI.Expose
@Deprecated
public VoidBuilder minVersion ( @NonNull Version minVersion ) {
this . minVersion = minVersion ;
return this ;
}
@StableAPI.Expose
@Deprecated
public VoidBuilder maxVersion ( Version maxVersion ) {
this . maxVersion = maxVersion ;
return this ;
}
@StableAPI.Expose
@Deprecated
public VoidBuilder preferredVersion ( @NonNull Version preferredVersion ) {
this . preferredVersion = preferredVersion ;
return this ;
}
@StableAPI.Expose
@Deprecated
public VoidBuilder regularSuffix ( String regularSuffix ) {
this . regularSuffix = regularSuffix ;
return this ;
}
@StableAPI.Expose
@Deprecated
public VoidBuilder devSuffix ( String devSuffix ) {
this . devSuffix = devSuffix ;
return this ;
}
@StableAPI.Expose
@Deprecated
public void build () {
DependencyLoader . loadLibrary ( loadingModId , groupId , artifactId , minVersion , maxVersion , preferredVersion ,
regularSuffix , devSuffix );
}
@Override
public String toString () {
return "DependencyLoader.VoidBuilder(loadingModId=" + this . loadingModId + ", groupId=" + this . groupId +
", artifactId=" + this . artifactId + ", minVersion=" + this . minVersion + ", maxVersion=" +
this . maxVersion + ", preferredVersion=" + this . preferredVersion + ", regularSuffix=" +
this . regularSuffix + ", devSuffix=" + this . devSuffix + ")" ;
}
}
2022-05-06 13:39:00 +02:00
}