You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

VersionManager.java 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Copyright (C) 2012-present the original author or authors.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package org.pf4j;
  17. import java.util.Comparator;
  18. /**
  19. * Manager responsible for versions of plugins.
  20. * It's used to check if a version matches a constraint and to compare two versions.
  21. *
  22. * @author Decebal Suiu
  23. */
  24. public interface VersionManager {
  25. /**
  26. * Check if a {@code constraint} and a {@code version} match.
  27. * A possible constrain can be {@code >=1.0.0 & <2.0.0}.
  28. *
  29. * @param version the version to check
  30. * @param constraint the constraint to check
  31. * @return {@code true} if the version matches the constraint, {@code false} otherwise
  32. */
  33. boolean checkVersionConstraint(String version, String constraint);
  34. /**
  35. * Compare two versions. It's similar with {@link Comparator#compare(Object, Object)}.
  36. *
  37. * @param v1 the first version to compare
  38. * @param v2 the second version to compare
  39. */
  40. int compareVersions(String v1, String v2);
  41. }