@@ -78,11 +78,7 @@ public Default(
7878 @ Override
7979 @ NonNull
8080 public InstalledJdk install () {
81- if (!provider .canUpdate ()) {
82- throw new UnsupportedOperationException (
83- "Installing a JDK is not supported by " + provider );
84- }
85- return provider .install (this );
81+ return provider .manager ().installJdk (this );
8682 }
8783
8884 @ Override
@@ -101,11 +97,6 @@ interface InstalledJdk extends Jdk {
10197 @ NonNull
10298 Path home ();
10399
104- /**
105- * Determines if the JDK version is fixed or that it can change
106- */
107- boolean isFixedVersion ();
108-
109100 @ Override
110101 default boolean isInstalled () {
111102 return true ;
@@ -117,7 +108,6 @@ default boolean isInstalled() {
117108 void uninstall ();
118109
119110 class Default extends Jdk .Default implements InstalledJdk {
120- private final boolean fixedVersion ;
121111 @ Nullable
122112 private final Path home ;
123113
@@ -130,18 +120,11 @@ public Default(
130120 @ NonNull String id ,
131121 @ Nullable Path home ,
132122 @ NonNull String version ,
133- boolean fixedVersion ,
134123 @ Nullable Set <String > tags ) {
135124 super (provider , id , version , tags != null ? tags : determineTagsFromJdkHome (home ));
136- this .fixedVersion = fixedVersion ;
137125 this .home = home ;
138126 }
139127
140- @ Override
141- public boolean isFixedVersion () {
142- return fixedVersion ;
143- }
144-
145128 @ Override
146129 @ NonNull
147130 public Path home () {
@@ -154,7 +137,7 @@ public Path home() {
154137
155138 @ Override
156139 public void uninstall () {
157- provider .uninstall (this );
140+ provider .manager (). uninstallJdk (this );
158141 }
159142
160143 @ Override
@@ -184,7 +167,8 @@ public int compareTo(Jdk o) {
184167
185168 @ Override
186169 public String toString () {
187- return majorVersion () + " (" + version + (isFixedVersion () ? " [fixed]" : " [dynamic]" ) + ", " + id
170+ return majorVersion () + " (" + version + (provider .hasFixedVersions () ? " [fixed]" : " [dynamic]" )
171+ + ", " + id
188172 + ", "
189173 + home + ", " + tags + "))" ;
190174 }
@@ -310,6 +294,14 @@ public static <T extends Jdk> Predicate<T> openVersion(int version) {
310294 return jdk -> jdk .majorVersion () >= version ;
311295 }
312296
297+ public static <T extends Jdk > Predicate <T > minVersion (int version ) {
298+ return jdk -> jdk .majorVersion () >= version ;
299+ }
300+
301+ public static <T extends Jdk > Predicate <T > maxVersion (int version ) {
302+ return jdk -> jdk .majorVersion () <= version ;
303+ }
304+
313305 public static <T extends Jdk > Predicate <T > forVersion (String version ) {
314306 int v = JavaUtils .parseJavaVersion (version );
315307 return forVersion (v , JavaUtils .isOpenVersion (version ));
@@ -328,7 +320,7 @@ public static <T extends Jdk> Predicate<T> allTags(Set<String> tags) {
328320 }
329321
330322 public static <T extends InstalledJdk > Predicate <T > fixedVersion () {
331- return InstalledJdk :: isFixedVersion ;
323+ return jdk -> jdk . provider (). hasFixedVersions () ;
332324 }
333325
334326 public static <T extends InstalledJdk > Predicate <T > path (Path jdkPath ) {
0 commit comments