Example usage for com.google.common.collect Sets newTreeSet

List of usage examples for com.google.common.collect Sets newTreeSet

Introduction

In this page you can find the example usage for com.google.common.collect Sets newTreeSet.

Prototype

public static <E> TreeSet<E> newTreeSet(Comparator<? super E> comparator) 

Source Link

Document

Creates a mutable, empty TreeSet instance with the given comparator.

Usage

From source file:org.apache.isis.core.metamodel.facets.CollectionUtils.java

/**
 * Copies the iterable into the specified type.
 *///ww w.  j  a  v  a 2s  .c  om
public static Object copyOf(final Iterable<Object> iterable, final Class<?> requiredType) {

    if (iterable == null) {
        throw new IllegalArgumentException("Iterable must be provided");
    }
    if (requiredType == null) {
        throw new IllegalArgumentException("RequiredType must be provided");
    }

    // specific list implementations
    if (CopyOnWriteArrayList.class == requiredType) {
        return Lists.newCopyOnWriteArrayList(iterable);
    }
    if (LinkedList.class == requiredType) {
        return Lists.newLinkedList(iterable);
    }
    if (ArrayList.class == requiredType) {
        return Lists.newArrayList(iterable);
    }

    if (AbstractList.class == requiredType) {
        return Lists.newArrayList(iterable);
    }

    // specific set implementations
    if (CopyOnWriteArraySet.class == requiredType) {
        return Sets.newCopyOnWriteArraySet(iterable);
    }
    if (LinkedHashSet.class == requiredType) {
        return Sets.newLinkedHashSet(iterable);
    }
    if (HashSet.class == requiredType) {
        return Sets.newHashSet(iterable);
    }
    if (TreeSet.class == requiredType) {
        Iterable rawIterable = iterable;
        return Sets.newTreeSet(rawIterable);
    }

    if (AbstractSet.class == requiredType) {
        return Sets.newLinkedHashSet(iterable);
    }

    // interfaces
    if (List.class == requiredType) {
        return Lists.newArrayList(iterable);
    }
    if (SortedSet.class == requiredType) {
        Iterable rawIterable = iterable;
        return Sets.newTreeSet(rawIterable);
    }
    if (Set.class == requiredType) {
        return Sets.newLinkedHashSet(iterable);
    }
    if (Collection.class == requiredType) {
        return Lists.newArrayList(iterable);
    }

    // array
    if (requiredType.isArray()) {
        Class<?> componentType = requiredType.getComponentType();
        Iterable rawIterable = iterable;
        return Iterables.toArray(rawIterable, componentType);
    }

    // not recognized
    return null;
}

From source file:org.glowroot.weaving.preinit.GlobalCollector.java

public List<String> usedInternalNames() {
    List<String> internalNames = Lists.newArrayList();
    for (String internalName : Sets.newTreeSet(classCollectors.keySet())) {
        if (!InternalNames.inBootstrapClassLoader(internalName) && !internalName.startsWith("org/slf4j/")
                && !internalName.startsWith("org/glowroot/shaded/slf4j/")
                && InternalNames.exists(internalName)) {
            internalNames.add(ClassNames.fromInternalName(internalName));
        }//from  ww w.ja v a 2s  .c  om
    }
    return internalNames;
}

From source file:com.google.gerrit.server.account.UniversalGroupBackend.java

@Override
public Collection<GroupReference> suggest(String name, ProjectControl project) {
    Set<GroupReference> groups = Sets.newTreeSet(GROUP_REF_NAME_COMPARATOR);
    for (GroupBackend g : backends) {
        groups.addAll(g.suggest(name, project));
    }/*from w  ww.java 2s. c o m*/
    return groups;
}

From source file:com.google.api.control.aggregator.OperationAggregator.java

/**
 * @return an {@code Operation} that combines all the merged {@code Operation}s
 *///from  ww  w  . java  2  s.com
public Operation asOperation() {
    // We have to clear this in case this is called multiple times. Otherwise, metrics will be
    // duplicated on subsequent calls.
    op.clearMetricValueSets();
    Set<String> keySet = Sets.newTreeSet(this.metricValues.keySet());
    for (String name : keySet) {
        Collection<MetricValue> values = this.metricValues.get(name).values();
        op.addMetricValueSets(MetricValueSet.newBuilder().setMetricName(name).addAllMetricValues(values));
    }
    return op.build();
}

From source file:kr.co.vcnc.haeinsa.HaeinsaDelete.java

/**
 * Delete all versions of the specified column.
 *
 * @param family family name/*from www  . jav a2  s.c  o  m*/
 * @param qualifier column qualifier
 * @return this for invocation chaining
 */
public HaeinsaDelete deleteColumns(byte[] family, byte[] qualifier) {
    NavigableSet<HaeinsaKeyValue> set = familyMap.get(family);
    if (set == null) {
        set = Sets.newTreeSet(HaeinsaKeyValue.COMPARATOR);
    }
    set.add(new HaeinsaKeyValue(this.row, family, qualifier, null, KeyValue.Type.DeleteColumn));
    familyMap.put(family, set);
    return this;
}

From source file:org.codeqinvest.codechanges.WeightedCodeChangeProbabilityCalculator.java

private SortedSet<DailyCodeChurn> sortDescendingByDay(Collection<DailyCodeChurn> codeChurns) {
    SortedSet<DailyCodeChurn> sortedCodeChurn = Sets.newTreeSet(new Comparator<DailyCodeChurn>() {

        @Override/*from   ww w .j  a va 2 s. co m*/
        public int compare(DailyCodeChurn codeChurn, DailyCodeChurn otherCodeChurn) {
            return -1 * codeChurn.getDay().compareTo(otherCodeChurn.getDay());
        }
    });
    sortedCodeChurn.addAll(codeChurns);
    return sortedCodeChurn;
}

From source file:com.metamx.druid.indexer.path.GranularityPathSpec.java

@Override
public Job addInputPaths(HadoopDruidIndexerConfig config, Job job) throws IOException {
    final Set<Interval> intervals = Sets.newTreeSet(Comparators.intervals());
    for (Interval segmentInterval : config.getSegmentGranularIntervals()) {
        for (Interval dataInterval : dataGranularity.getIterable(segmentInterval)) {
            intervals.add(dataInterval);
        }// www . j  ava  2  s .  co m
    }

    Path betaInput = new Path(inputPath);
    FileSystem fs = betaInput.getFileSystem(job.getConfiguration());
    Set<String> paths = Sets.newTreeSet();
    Pattern fileMatcher = Pattern.compile(filePattern);

    DateTimeFormatter customFormatter = null;
    if (pathFormat != null) {
        customFormatter = DateTimeFormat.forPattern(pathFormat);
    }

    for (Interval interval : intervals) {
        DateTime t = interval.getStart();
        String intervalPath = null;
        if (customFormatter != null) {
            intervalPath = customFormatter.print(t);
        } else {
            intervalPath = dataGranularity.toPath(t);
        }

        Path granularPath = new Path(betaInput, intervalPath);
        log.info("Checking path[%s]", granularPath);
        for (FileStatus status : FSSpideringIterator.spiderIterable(fs, granularPath)) {
            final Path filePath = status.getPath();
            if (fileMatcher.matcher(filePath.toString()).matches()) {
                paths.add(filePath.toString());
            }
        }
    }

    for (String path : paths) {
        log.info("Appending path[%s]", path);
        FileInputFormat.addInputPath(job, new Path(path));
    }

    return job;
}

From source file:com.splicemachine.impl.MockRegionUtils.java

public static HRegion getMockRegion() throws IOException {
    final Map<byte[], Set<Cell>> rowMap = Maps.newTreeMap(Bytes.BYTES_COMPARATOR);
    HRegion fakeRegion = mock(HRegion.class);
    HRegionInfo fakeInfo = mock(HRegionInfo.class);
    when(fakeInfo.getStartKey()).thenReturn(HConstants.EMPTY_BYTE_ARRAY);
    when(fakeInfo.getEndKey()).thenReturn(HConstants.EMPTY_BYTE_ARRAY);
    when(fakeRegion.getRegionInfo()).thenReturn(fakeInfo);
    when(fakeRegion.get(any(Get.class))).thenAnswer(new Answer<Result>() {
        @Override//w w w .ja v  a2  s. co m
        public Result answer(InvocationOnMock invocationOnMock) throws Throwable {
            final Get get = (Get) invocationOnMock.getArguments()[0];
            Set<Cell> keyValues = rowMap.get(get.getRow());
            if (get.hasFamilies()) {
                Set<Cell> filtered = Sets.filter(keyValues, new Predicate<Cell>() {
                    @Override
                    public boolean apply(@Nullable Cell input) {
                        Map<byte[], NavigableSet<byte[]>> familyMap = get.getFamilyMap();
                        if (!familyMap.containsKey(input.getFamily()))
                            return false;
                        NavigableSet<byte[]> qualifiers = familyMap.get(input.getFamily());
                        return qualifiers.contains(input.getQualifier());
                    }
                });
                List<Cell> kvs = Lists.newArrayList(filtered);
                return Result.create(kvs);
            } else if (keyValues != null) {
                return Result.create(Lists.newArrayList(keyValues));
            } else
                return null;
        }
    });

    Answer<Void> putAnswer = new Answer<Void>() {
        @Override
        public Void answer(InvocationOnMock invocationOnMock) throws Throwable {
            Put put = (Put) invocationOnMock.getArguments()[0];
            Set<Cell> keyValues = rowMap.get(put.getRow());
            if (keyValues == null) {
                keyValues = Sets.newTreeSet(new KeyValue.KVComparator());
                rowMap.put(put.getRow(), keyValues);
            }
            Map<byte[], List<KeyValue>> familyMap = put.getFamilyMap();
            for (List<KeyValue> kvs : familyMap.values()) {
                for (KeyValue kv : kvs) {
                    boolean ts = !kv.isLatestTimestamp();
                    kv = ts ? kv
                            : new KeyValue(kv.getRow(), kv.getFamily(), kv.getQualifier(),
                                    System.currentTimeMillis(), kv.getValue());
                    if (keyValues.contains(kv)) {
                        keyValues.remove(kv);
                    }
                    keyValues.add(kv);
                }
            }
            return null;
        }
    };
    doAnswer(putAnswer).when(fakeRegion).put(any(Put.class));

    Answer<Void> deleteAnswer = new Answer<Void>() {
        @Override
        public Void answer(InvocationOnMock invocationOnMock) throws Throwable {
            Delete delete = (Delete) invocationOnMock.getArguments()[0];
            Set<Cell> keyValues = rowMap.get(delete.getRow());
            if (keyValues == null)
                return null; //nothing to do, it's already deleted

            long timestamp = delete.getTimeStamp();
            boolean isEmpty = delete.isEmpty();
            if (isEmpty) {
                Iterator<Cell> iter = keyValues.iterator();
                while (iter.hasNext()) {
                    Cell kv = iter.next();
                    if (kv.getTimestamp() == timestamp)
                        iter.remove();
                }
            } else {
                Map<byte[], List<KeyValue>> deleteFamilyMap = delete.getFamilyMap();
                Iterator<Cell> iter = keyValues.iterator();
                while (iter.hasNext()) {
                    Cell kv = iter.next();
                    if (!deleteFamilyMap.containsKey(kv.getFamily()))
                        continue;
                    List<KeyValue> toDelete = deleteFamilyMap.get(kv.getFamily());
                    if (toDelete.size() > 0) {
                        for (KeyValue toDeleteKv : toDelete) {
                            if (toDeleteKv.getQualifier().length <= 0) {
                                //delete everything
                                if (kv.getTimestamp() == toDeleteKv.getTimestamp()) {
                                    iter.remove();
                                    break;
                                }
                            } else if (Bytes.equals(kv.getQualifier(), toDeleteKv.getQualifier())) {
                                if (kv.getTimestamp() == toDeleteKv.getTimestamp()) {
                                    iter.remove();
                                    break;
                                }
                            }
                        }
                    } else {
                        if (kv.getTimestamp() == timestamp)
                            iter.remove();
                    }
                }
            }

            return null;
        }
    };
    doAnswer(deleteAnswer).when(fakeRegion).delete(any(Delete.class));

    when(fakeRegion.getScanner(any(Scan.class))).thenAnswer(new Answer<RegionScanner>() {

        @Override
        public RegionScanner answer(InvocationOnMock invocationOnMock) throws Throwable {
            Scan scan = (Scan) invocationOnMock.getArguments()[0];
            return new IteratorRegionScanner(rowMap.values().iterator(), scan);
        }
    });

    return fakeRegion;
}

From source file:org.gradle.api.reporting.components.internal.ComponentReportRenderer.java

public void renderSourceSets(Collection<LanguageSourceSet> sourceSets) {
    Set<LanguageSourceSet> additionalSourceSets = Sets.newTreeSet(SourceSetRenderer.SORT_ORDER);
    for (LanguageSourceSet sourceSet : sourceSets) {
        if (!componentSourceSets.contains(sourceSet)) {
            additionalSourceSets.add(sourceSet);
        }//from   ww  w.j av a2  s  .  c o  m
    }
    if (!additionalSourceSets.isEmpty()) {
        getBuilder().getOutput().println();
        getBuilder().collection("Additional source sets", additionalSourceSets, sourceSetRenderer,
                "source sets");
    }
}

From source file:eu.interedition.text.util.OverlapAnalyzer.java

@Override
public void end(long offset, Iterable<Annotation> annotations) {
    for (Annotation ending : annotations) {
        started.remove(ending);/*from  www. j a  va 2s  .co  m*/
    }

    for (Annotation ending : annotations) {
        final Name endingName = ending.getName();
        for (TextTarget endingTarget : ending.getTargets()) {
            for (Annotation started : this.started) {
                final Name startedName = started.getName();
                for (TextTarget startedTarget : started.getTargets()) {
                    if (!startedTarget.encloses(endingTarget)) {
                        if (startedName.equals(endingName)) {
                            selfOverlapping.add(endingName);
                        } else {
                            overlapping.add(Sets.newTreeSet(Sets.newHashSet(startedName, endingName)));
                        }
                    }
                }
            }
        }
    }
}