@ -68,7 +68,7 @@ public class Library {
@@ -68,7 +68,7 @@ public class Library {
private final String linkRootName ;
private final Map < String , Link > links ;
private final Map < String , List < Li nk > > links ;
/ * *
* Create a new { @code Library } with the given { @code name } , { @code version } , and
@ -89,7 +89,7 @@ public class Library {
@@ -89,7 +89,7 @@ public class Library {
* /
public Library ( String name , String calendarName , LibraryVersion version , List < Group > groups ,
List < ProhibitedVersion > prohibitedVersions , boolean considerSnapshots , VersionAlignment versionAlignment ,
String alignsWithBom , String linkRootName , Map < String , Link > links ) {
String alignsWithBom , String linkRootName , Map < String , List < Li nk > > links ) {
this . name = name ;
this . calendarName = ( calendarName ! = null ) ? calendarName : name ;
this . version = version ;
@ -148,16 +148,22 @@ public class Library {
@@ -148,16 +148,22 @@ public class Library {
return this . alignsWithBom ;
}
public Map < String , Link > getLinks ( ) {
public Map < String , List < Li nk > > getLinks ( ) {
return this . links ;
}
public String getLinkUrl ( String name ) {
Link link = getLink ( name ) ;
return ( link ! = null ) ? link . url ( this ) : null ;
List < Link > links = getLinks ( name ) ;
if ( links = = null | | links . isEmpty ( ) ) {
return null ;
}
if ( links . size ( ) > 1 ) {
throw new IllegalStateException ( "Expected a single '%s' link for %s" . formatted ( name , getName ( ) ) ) ;
}
return links . get ( 0 ) . url ( this ) ;
}
public Link getLink ( String name ) {
public List < Li nk > getLinks ( String name ) {
return this . links . get ( name ) ;
}
@ -524,7 +530,7 @@ public class Library {
@@ -524,7 +530,7 @@ public class Library {
}
public record Link ( Function < LibraryVersion , String > factory , List < String > packages ) {
public record Link ( String rootName , Function < LibraryVersion , String > factory , List < String > packages ) {
private static final Pattern PACKAGE_EXPAND = Pattern . compile ( "^(.*)\\[(.*)\\]$" ) ;