/** * Compute the {@link Segment}'s from a given list of segmentId's. * * @param segments The segment id's for which to compute Segments. * @return an array of computed {@link Segment} */ public static Segment[] computeSegments(int... segments) { if (segments == null || segments.length == 0) { return EMPTY_SEGMENTS; } final Set<Segment> resolvedSegments = new HashSet<>(); computeSegments(ROOT_SEGMENT, stream(segments).boxed().collect(toList()), resolvedSegments); // As we split and compute segment masks branching by first entry, the resolved segment mask is not guaranteed // to be added to the collection in natural order. return resolvedSegments.stream().sorted().collect(toList()).toArray(new Segment[resolvedSegments.size()]); }
private static boolean computeSegments(Segment segment, List<Integer> segments, Set<Segment> applicableSegments) { final Segment[] splitSegment = segment.split(); // As the first segmentId mask, keeps the original segmentId, we only check the 2nd segmentId mask being a know. if (segments.contains(splitSegment[1].getSegmentId())) { for (Segment segmentSplit : splitSegment) { if (!computeSegments(segmentSplit, segments, applicableSegments)) { applicableSegments.add(segmentSplit); } } } else { applicableSegments.add(segment); } return true; }
Segment[] segments = Segment.computeSegments(tokenStoreCurrentSegments);
/** * Compute the {@link Segment}'s from a given list of segmentId's. * * @param segments The segment id's for which to compute Segments. * @return an array of computed {@link Segment} */ public static Segment[] computeSegments(int... segments) { if (segments == null || segments.length == 0) { return EMPTY_SEGMENTS; } final Set<Segment> resolvedSegments = new HashSet<>(); computeSegments(ROOT_SEGMENT, stream(segments).boxed().collect(toList()), resolvedSegments); // As we split and compute segment masks branching by first entry, the resolved segment mask is not guaranteed // to be added to the collection in natural order. return resolvedSegments.stream().sorted().collect(toList()).toArray(new Segment[resolvedSegments.size()]); }
/** * Compute the {@link Segment}'s from a given list of segmentId's. * * @param segments The segment id's for which to compute Segments. * @return an array of computed {@link Segment} */ public static Segment[] computeSegments(int... segments) { if (segments == null || segments.length == 0) { return EMPTY_SEGMENTS; } final Set<Segment> resolvedSegments = new HashSet<>(); computeSegments(ROOT_SEGMENT, stream(segments).boxed().collect(toList()), resolvedSegments); // As we split and compute segment masks branching by first entry, the resolved segment mask is not guaranteed // to be added to the collection in natural order. return resolvedSegments.stream().sorted().collect(toList()).toArray(new Segment[resolvedSegments.size()]); }
private static boolean computeSegments(Segment segment, List<Integer> segments, Set<Segment> applicableSegments) { final Segment[] splitSegment = segment.split(); // As the first segmentId mask, keeps the original segmentId, we only check the 2nd segmentId mask being a know. if (segments.contains(splitSegment[1].getSegmentId())) { for (Segment segmentSplit : splitSegment) { if (!computeSegments(segmentSplit, segments, applicableSegments)) { applicableSegments.add(segmentSplit); } } } else { applicableSegments.add(segment); } return true; }
private static boolean computeSegments(Segment segment, List<Integer> segments, Set<Segment> applicableSegments) { final Segment[] splitSegment = segment.split(); // As the first segmentId mask, keeps the original segmentId, we only check the 2nd segmentId mask being a know. if (segments.contains(splitSegment[1].getSegmentId())) { for (Segment segmentSplit : splitSegment) { if (!computeSegments(segmentSplit, segments, applicableSegments)) { applicableSegments.add(segmentSplit); } } } else { applicableSegments.add(segment); } return true; }
Segment[] segments = Segment.computeSegments(tokenStoreCurrentSegments);
Segment[] segments = Segment.computeSegments(tokenStoreCurrentSegments);