/** * Finds {@link Compatibility} instances between (and not inclusive of) the specified versions. */ public Compatibilities betweenReleases(final String start, final String end) { return beforeRelease(end).afterRelease(start); }
public List<Compatibility> match() { final Compatibility[] enumArray = (Compatibility[]) compatibility.getEnumConstants(); final List<Compatibility> enums = Arrays.asList(enumArray); final Pattern pattern = Pattern.compile(configuredAs); final List<Compatibility> thisMatch = enums.stream() .filter(c -> beforeRelease(c, releaseVersionBefore)) .filter(c -> afterRelease(c, releaseVersionAfter)) .filter(c -> beforeIo(c, ioVersionBefore)) .filter(c -> afterIo(c, ioVersionAfter)) .filter(c -> pattern.matcher(c.getConfiguration()).matches()) .collect(Collectors.toList()); final List<Compatibility> matches = new ArrayList<>(thisMatch); compatibilitiesToJoin.forEach(c -> matches.addAll(c.match())); return matches; }
final GraphTraversalSource g = graph.traversal(); final Compatibility[] noTypeGraphSONPlusGryo3_2_3 = Compatibilities.with(GryoCompatibility.class).beforeRelease("3.2.4").join(Compatibilities.UNTYPED_GRAPHSON).matchToArray(); final Compatibility[] noTypeGraphSONPlusGryo3_3_0 = Compatibilities.with(GryoCompatibility.class).beforeRelease("3.3.0").join(Compatibilities.UNTYPED_GRAPHSON).matchToArray(); final Compatibility[] before3_4_0 = Compatibilities.with(GryoCompatibility.class).beforeRelease("3.4.0") .join(Compatibilities.with(GraphSONCompatibility.class).configuredAs(".*no-types|v1d0") .join(Compatibilities.with(GraphSONCompatibility.class).beforeRelease("3.4.0"))).matchToArray();