Java Code Examples for com.google.common.collect.SortedSetMultimap#put()

The following examples show how to use com.google.common.collect.SortedSetMultimap#put() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: HtmlReport.java    From sailfish-core with Apache License 2.0 5 votes vote down vote up
private SortedSetMultimap<Category, String> toMultimap(Set<BugDescription> bugSet) {
    SortedSetMultimap<Category, String> bugMap = SortedSetMultimapBuilder.hashKeys().treeSetValues().build();
    for (BugDescription bugDescription : bugSet) {
        bugMap.put(bugDescription.getCategories(), bugDescription.getSubject().toUpperCase());
    }
    return bugMap;
}
 
Example 2
Source File: ReportUtils.java    From n4js with Eclipse Public License 1.0 5 votes vote down vote up
/** Creates a histogram of the given collections */
static public <E extends Comparable<E>, T extends Comparable<T>> Multimap<T, E> getHistogram(Collection<E> elems,
		Function<E, T> pivot) {

	final SortedSetMultimap<T, E> histogram = TreeMultimap.create();
	for (E elem : elems) {
		T t = pivot.apply(elem);
		histogram.put(t, elem);
	}
	return histogram;
}
 
Example 3
Source File: SliceCycleArchCondition.java    From ArchUnit with Apache License 2.0 5 votes vote down vote up
private SortedSetMultimap<Slice, Dependency> targetsOf(Slice slice,
        ClassesToSlicesMapping classesToSlicesMapping, DescribedPredicate<Dependency> predicate) {
    SortedSetMultimap<Slice, Dependency> result = hashKeys().treeSetValues().build();
    for (Dependency dependency : Guava.Iterables.filter(slice.getDependenciesFromSelf(), predicate)) {
        if (classesToSlicesMapping.containsKey(dependency.getTargetClass())) {
            result.put(classesToSlicesMapping.get(dependency.getTargetClass()), dependency);
        }
    }
    return result;
}
 
Example 4
Source File: HmfGenePanelSupplier.java    From hmftools with GNU General Public License v3.0 5 votes vote down vote up
@NotNull
private static SortedSetMultimap<String, HmfTranscriptRegion> toSortedMap(@NotNull List<HmfTranscriptRegion> regions) {
    SortedSetMultimap<String, HmfTranscriptRegion> regionMap = TreeMultimap.create();
    for (HmfTranscriptRegion region : regions) {
        regionMap.put(region.chromosome(), region);
    }

    return regionMap;
}
 
Example 5
Source File: BEDFileLoader.java    From hmftools with GNU General Public License v3.0 5 votes vote down vote up
@NotNull
public static SortedSetMultimap<String, GenomeRegion> fromBedFile(@NotNull String bedFile) throws IOException {
    final SortedSetMultimap<String, GenomeRegion> regionMap = TreeMultimap.create();

    String prevChromosome = null;
    GenomeRegion prevRegion = null;
    try (final AbstractFeatureReader<BEDFeature, LineIterator> reader = getFeatureReader(bedFile, new BEDCodec(), false)) {
        for (final BEDFeature bedFeature : reader.iterator()) {
            final String chromosome = bedFeature.getContig();
            final long start = bedFeature.getStart();
            final long end = bedFeature.getEnd();

            if (end < start) {
                LOGGER.warn("Invalid genome region found in chromosome {}: start={}, end={}", chromosome, start, end);
            } else {
                final GenomeRegion region = GenomeRegions.create(chromosome, start, end);
                if (prevRegion != null && chromosome.equals(prevChromosome) && prevRegion.end() >= start) {
                    LOGGER.warn("BED file is not sorted, please fix! Current={}, Previous={}", region, prevRegion);
                } else {
                    regionMap.put(chromosome, region);
                    prevChromosome = chromosome;
                    prevRegion = region;
                }
            }
        }
    }

    return regionMap;
}
 
Example 6
Source File: BidirectionalSlicerTest.java    From hmftools with GNU General Public License v3.0 5 votes vote down vote up
@Before
public void setup() {
    final SortedSetMultimap<String, GenomeRegion> regionMap = TreeMultimap.create();
    regionMap.put("X", GenomeRegions.create("X", 100, 200));
    regionMap.put("X", GenomeRegions.create("X", 300, 400));
    regionMap.put("Y", GenomeRegions.create("Y", 500, 600));

    slicer = new BidirectionalSlicer(regionMap);
}
 
Example 7
Source File: TableRuntimeContext.java    From datacollector with Apache License 2.0 5 votes vote down vote up
public static SortedSetMultimap<TableContext, TableRuntimeContext> initializeAndUpgradeFromV1Offsets(
    Map<String, TableContext> tableContextMap,
    Map<String, String> offsets,
    Set<String> offsetKeysToRemove
) throws StageException {
  SortedSetMultimap<TableContext, TableRuntimeContext> returnMap = buildSortedPartitionMap();

  for (Map.Entry<String, TableContext> tableEntry : tableContextMap.entrySet()) {
    final String tableName = tableEntry.getKey();
    final TableContext tableContext = tableEntry.getValue();

    Map<String, String> startingOffsets;
    String offsetValue = null;
    Map<String, String> storedOffsets = null;
    if (offsets.containsKey(tableName)) {
      offsetValue = offsets.remove(tableName);
      storedOffsets = OffsetQueryUtil.validateStoredAndSpecifiedOffset(tableContext, offsetValue);

      offsetKeysToRemove.add(tableName);

      startingOffsets = OffsetQueryUtil.getOffsetsFromSourceKeyRepresentation(offsetValue);
      tableContext.getOffsetColumnToStartOffset().putAll(startingOffsets);
    }

    final TableRuntimeContext partition = createInitialPartition(tableContext, storedOffsets);
    returnMap.put(tableContext, partition);

    if (offsetValue != null) {
      offsets.put(partition.getOffsetKey(), offsetValue);
    }
  }

  return returnMap;
}
 
Example 8
Source File: MultithreadedTableProvider.java    From datacollector with Apache License 2.0 4 votes vote down vote up
/**
 * Checks whether any tables have had partitioning turned off or not, and updates the partition map appropriately
 *
 * @param reconstructedPartitions the reconstructed partitions (may be modified)
 */
private void handlePartitioningTurnedOffOrOn(
    SortedSetMultimap<TableContext, TableRuntimeContext> reconstructedPartitions
) {

  for (TableContext tableContext : reconstructedPartitions.keySet()) {
    final SortedSet<TableRuntimeContext> partitions = reconstructedPartitions.get(tableContext);
    final TableRuntimeContext lastPartition = partitions.last();
    final TableContext sourceTableContext = lastPartition.getSourceTableContext();
    Utils.checkState(
        sourceTableContext.equals(tableContext),
        String.format(
            "Source table context for %s should match TableContext map key of %s",
            lastPartition.getDescription(),
            tableContext.getQualifiedName()
        )
    );

    final boolean partitioningTurnedOff = lastPartition.isPartitioned()
        && sourceTableContext.getPartitioningMode() == PartitioningMode.DISABLED;
    final boolean partitioningTurnedOn = !lastPartition.isPartitioned()
        && sourceTableContext.isPartitionable()
        && sourceTableContext.getPartitioningMode() != PartitioningMode.DISABLED;

    if (!partitioningTurnedOff && !partitioningTurnedOn) {
      continue;
    }

    final Map<String, String> nextStartingOffsets = new HashMap<>();
    final Map<String, String> nextMaxOffsets = new HashMap<>();

    final int newPartitionSequence = lastPartition.getPartitionSequence() > 0 ? lastPartition.getPartitionSequence() + 1 : 1;
    if (partitioningTurnedOff) {
      LOG.info(
          "Table {} has switched from partitioned to non-partitioned; partition sequence {} will be the last (with" +
              " no max offsets)",
          sourceTableContext.getQualifiedName(),
          newPartitionSequence
      );

      lastPartition.getPartitionOffsetStart().forEach(
          (col, off) -> {
            String basedOnStartOffset = lastPartition.generateNextPartitionOffset(col, off);
            nextStartingOffsets.put(col, basedOnStartOffset);
          }
      );

    } else if (partitioningTurnedOn) {

      lastPartition.getPartitionOffsetStart().forEach(
          (col, off) -> {
            String basedOnStoredOffset = lastPartition.getInitialStoredOffsets().get(col);
            nextStartingOffsets.put(col, basedOnStoredOffset);
          }
      );

      nextStartingOffsets.forEach(
          (col, off) -> nextMaxOffsets.put(col, lastPartition.generateNextPartitionOffset(col, off))
      );

      if (!reconstructedPartitions.remove(sourceTableContext, lastPartition)) {
        throw new IllegalStateException(String.format(
            "Failed to remove partition %s for table %s in switching partitioning from off to on",
            lastPartition.getDescription(),
            sourceTableContext.getQualifiedName()
        ));
      }

      LOG.info(
          "Table {} has switched from non-partitioned to partitioned; using last stored offsets as the starting" +
              " offsets for the new partition {}",
          sourceTableContext.getQualifiedName(),
          newPartitionSequence
      );
    }

    final TableRuntimeContext nextPartition = new TableRuntimeContext(
        sourceTableContext,
        lastPartition.isUsingNonIncrementalLoad(),
        (lastPartition.isPartitioned() && !partitioningTurnedOff) || partitioningTurnedOn,
        newPartitionSequence,
        nextStartingOffsets,
        nextMaxOffsets
    );

    reconstructedPartitions.put(sourceTableContext, nextPartition);
  }
}
 
Example 9
Source File: AwsSignature.java    From s3proxy with Apache License 2.0 4 votes vote down vote up
/**
 * Create Amazon V2 signature.  Reference:
 * http://docs.aws.amazon.com/general/latest/gr/signature-version-2.html
 */
static String createAuthorizationSignature(
        HttpServletRequest request, String uri, String credential,
        boolean queryAuth, boolean bothDateHeader) {
    // sort Amazon headers
    SortedSetMultimap<String, String> canonicalizedHeaders =
            TreeMultimap.create();
    for (String headerName : Collections.list(request.getHeaderNames())) {
        Collection<String> headerValues = Collections.list(
                request.getHeaders(headerName));
        headerName = headerName.toLowerCase();
        if (!headerName.startsWith("x-amz-") || (bothDateHeader &&
              headerName.equalsIgnoreCase(AwsHttpHeaders.DATE))) {
            continue;
        }
        if (headerValues.isEmpty()) {
            canonicalizedHeaders.put(headerName, "");
        }
        for (String headerValue : headerValues) {
            canonicalizedHeaders.put(headerName,
                    Strings.nullToEmpty(headerValue));
        }
    }

    // Build string to sign
    StringBuilder builder = new StringBuilder()
            .append(request.getMethod())
            .append('\n')
            .append(Strings.nullToEmpty(request.getHeader(
                    HttpHeaders.CONTENT_MD5)))
            .append('\n')
            .append(Strings.nullToEmpty(request.getHeader(
                    HttpHeaders.CONTENT_TYPE)))
            .append('\n');
    String expires = request.getParameter("Expires");
    if (queryAuth) {
        // If expires is not nil, then it is query string sign
        // If expires is nil, maybe also query string sign
        // So should check other accessid param, presign to judge.
        // not the expires
        builder.append(Strings.nullToEmpty(expires));
    }  else {
        if (!bothDateHeader) {
            if (canonicalizedHeaders.containsKey(AwsHttpHeaders.DATE)) {
                builder.append("");
            } else {
                builder.append(request.getHeader(HttpHeaders.DATE));
            }
        }  else {
            if (!canonicalizedHeaders.containsKey(AwsHttpHeaders.DATE)) {
                builder.append(request.getHeader(AwsHttpHeaders.DATE));
            }  else {
                // panic
            }
        }
    }

    builder.append('\n');
    for (Map.Entry<String, String> entry : canonicalizedHeaders.entries()) {
        builder.append(entry.getKey()).append(':')
                .append(entry.getValue()).append('\n');
    }
    builder.append(uri);

    char separator = '?';
    List<String> subresources = Collections.list(
            request.getParameterNames());
    Collections.sort(subresources);
    for (String subresource : subresources) {
        if (SIGNED_SUBRESOURCES.contains(subresource)) {
            builder.append(separator).append(subresource);

            String value = request.getParameter(subresource);
            if (!"".equals(value)) {
                builder.append('=').append(value);
            }
            separator = '&';
        }
    }

    String stringToSign = builder.toString();
    logger.trace("stringToSign: {}", stringToSign);

    // Sign string
    Mac mac;
    try {
        mac = Mac.getInstance("HmacSHA1");
        mac.init(new SecretKeySpec(credential.getBytes(
                StandardCharsets.UTF_8), "HmacSHA1"));
    } catch (InvalidKeyException | NoSuchAlgorithmException e) {
        throw new RuntimeException(e);
    }
    return BaseEncoding.base64().encode(mac.doFinal(
            stringToSign.getBytes(StandardCharsets.UTF_8)));
}
 
Example 10
Source File: GetAccountHierarchy.java    From googleads-java-lib with Apache License 2.0 4 votes vote down vote up
/**
 * Runs the example.
 *
 * @param adWordsServices the services factory.
 * @param session the session.
 * @throws ApiException if the API request failed with one or more service errors.
 * @throws RemoteException if the API request failed due to other errors.
 */
public static void runExample(AdWordsServicesInterface adWordsServices, AdWordsSession session)
    throws RemoteException {
  // Get the ServicedAccountService.
  ManagedCustomerServiceInterface managedCustomerService =
      adWordsServices.get(session, ManagedCustomerServiceInterface.class);

  // Create selector builder.
  int offset = 0;
  SelectorBuilder selectorBuilder =
      new SelectorBuilder()
          .fields(ManagedCustomerField.CustomerId, ManagedCustomerField.Name)
          .offset(offset)
          .limit(PAGE_SIZE);

  // Get results.
  ManagedCustomerPage page;

  // Map from customerId to customer node.
  Map<Long, ManagedCustomerTreeNode> customerIdToCustomerNode = Maps.newHashMap();

  // Map from each parent customer ID to its set of linked child customer IDs.
  SortedSetMultimap<Long, Long> parentIdToChildIds = TreeMultimap.create();
  do {
    page = managedCustomerService.get(selectorBuilder.build());

    if (page.getEntries() != null) {
      // Create account tree nodes for each customer.
      for (ManagedCustomer customer : page.getEntries()) {
        ManagedCustomerTreeNode node = new ManagedCustomerTreeNode();
        node.account = customer;
        customerIdToCustomerNode.put(customer.getCustomerId(), node);
      }

      // Update the map of parent customer ID to child customer IDs.
      if (page.getLinks() != null) {
        for (ManagedCustomerLink link : page.getLinks()) {
          parentIdToChildIds.put(link.getManagerCustomerId(), link.getClientCustomerId());
        }
      }
    }
    offset += PAGE_SIZE;
    selectorBuilder.increaseOffsetBy(PAGE_SIZE);
  } while (offset < page.getTotalNumEntries());

  // Update the parentNode of each child node, and add each child to the childAccounts
  // of its parentNode.
  for (Entry<Long, Long> parentIdEntry : parentIdToChildIds.entries()) {
    ManagedCustomerTreeNode parentNode = customerIdToCustomerNode.get(parentIdEntry.getKey());
    ManagedCustomerTreeNode childNode = customerIdToCustomerNode.get(parentIdEntry.getValue());
    childNode.parentNode = parentNode;
    parentNode.childAccounts.add(childNode);
  }

  // Find the root account node in the tree.
  ManagedCustomerTreeNode rootNode =
      customerIdToCustomerNode.values().stream()
          .filter(node -> node.parentNode == null)
          .findFirst()
          .orElse(null);

  // Display serviced account graph.
  if (rootNode != null) {
    // Display account tree.
    System.out.println("CustomerId, Name");
    System.out.println(rootNode.toTreeString(0, new StringBuffer()));
  } else {
    System.out.println("No serviced accounts were found.");
  }
}