类com.google.common.collect.LinkedHashMultimap源码实例Demo

下面列出了怎么用com.google.common.collect.LinkedHashMultimap的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: flashback   文件: MatchRuleUtilsTest.java
@Test
public void testMethodUriBodyWithAnyBoundaryMatchForDifferentMethods()
    throws Exception {
  Multimap<String, String> headers = LinkedHashMultimap.create();
  headers.put("key1", "value1");
  headers.put("Content-Type", "multipart/form-data; boundary=wxyz1234abcd5e");

  RecordedHttpBody body = new RecordedStringHttpBody("------wxyz1234abcd5e\nContent-Disposition: form-data; name=\"org\" \ngoogle\n------wxyz1234abcd5e");
  RecordedHttpRequest recordedHttpRequest1 =
      new RecordedHttpRequest("POST", new URI("http://www.google.com/"), headers, body);
  RecordedHttpRequest recordedHttpRequest2 =
      new RecordedHttpRequest("PUT", new URI("http://www.google.com/"), headers, body);

  MatchRule matchRule = MatchRuleUtils.matchMethodUriBodyWithAnyBoundary();

  Assert.assertFalse(matchRule.test(recordedHttpRequest1, recordedHttpRequest2));
  Assert.assertTrue(matchRule.getMatchFailureDescriptionForRequests(recordedHttpRequest1, recordedHttpRequest2).contains("HTTP Method Mismatch"));
}
 
源代码2 项目: buck   文件: TargetSpecResolver.java
private ImmutableList<ImmutableSet<BuildTarget>> collectTargets(
    int specsCount,
    List<ListenableFuture<Entry<Integer, ImmutableSet<BuildTarget>>>> targetFutures)
    throws InterruptedException {
  // Walk through and resolve all the futures, and place their results in a multimap that
  // is indexed by the integer representing the input target spec order.
  LinkedHashMultimap<Integer, BuildTarget> targetsMap = LinkedHashMultimap.create();
  try {
    for (ListenableFuture<Map.Entry<Integer, ImmutableSet<BuildTarget>>> targetFuture :
        targetFutures) {
      Map.Entry<Integer, ImmutableSet<BuildTarget>> result = targetFuture.get();
      targetsMap.putAll(result.getKey(), result.getValue());
    }
  } catch (ExecutionException e) {
    MoreThrowables.throwIfAnyCauseInstanceOf(e, InterruptedException.class);
    HumanReadableExceptions.throwIfHumanReadableUnchecked(e.getCause());
    throw new RuntimeException(e);
  }
  // Finally, pull out the final build target results in input target spec order, and place them
  // into a list of sets that exactly matches the ihput order.
  ImmutableList.Builder<ImmutableSet<BuildTarget>> targets = ImmutableList.builder();
  for (int index = 0; index < specsCount; index++) {
    targets.add(ImmutableSet.copyOf(targetsMap.get(index)));
  }
  return targets.build();
}
 
源代码3 项目: swellrt   文件: AbstractSearchProviderImpl.java
protected LinkedHashMap<WaveId, WaveViewData> filterWavesViewBySearchCriteria(
    Function<ReadableWaveletData, Boolean> matchesFunction,
    LinkedHashMultimap<WaveId, WaveletId> currentUserWavesView) {
  // Must use a map with stable ordering, since indices are meaningful.
  LinkedHashMap<WaveId, WaveViewData> results = Maps.newLinkedHashMap();

  // Loop over the user waves view.
  for (WaveId waveId : currentUserWavesView.keySet()) {
    Set<WaveletId> waveletIds = currentUserWavesView.get(waveId);
    WaveViewData view = buildWaveViewData(waveId, waveletIds, matchesFunction, waveMap);
    Iterable<? extends ObservableWaveletData> wavelets = view.getWavelets();
    boolean hasConversation = false;
    for (ObservableWaveletData waveletData : wavelets) {
      if (IdUtil.isConversationalId(waveletData.getWaveletId())) {
        hasConversation = true;
        break;
      }
    }
    if ((view != null) && hasConversation) {
      results.put(waveId, view);
    }
  }
  return results;
}
 
源代码4 项目: flashback   文件: MatchRuleUtilsTest.java
@Test
public void testMethodUriBodyWithAnyBoundaryMatch()
    throws Exception {
  Multimap<String, String> headers = LinkedHashMultimap.create();
  headers.put("key1", "value1");
  headers.put("Content-Type", "multipart/form-data; boundary=wxyz1234abcd5e");

  RecordedHttpBody body = new RecordedStringHttpBody("------wxyz1234abcd5e\nContent-Disposition: form-data; name=\"org\" \ngoogle\n------wxyz1234abcd5e");
  RecordedHttpRequest recordedHttpRequest1 =
      new RecordedHttpRequest("POST", new URI("http://www.google.com/"), headers, body);
  RecordedHttpRequest recordedHttpRequest2 =
      new RecordedHttpRequest("POST", new URI("http://www.google.com/"), headers, body);

  MatchRule matchRule = MatchRuleUtils.matchMethodUriBodyWithAnyBoundary();
  Assert.assertTrue(matchRule.test(recordedHttpRequest1, recordedHttpRequest2));
}
 
源代码5 项目: datawave   文件: ExpandCompositeTerms.java
/**
 * The default leaf node visitor, which uses the anded nodes to determine whether a composite can be formed with this leaf node.
 *
 * @param node
 *            A leaf node from the original script
 * @param eData
 *            ExpandData, containing ancestor anded nodes, used anded nodes, and a flag indicating whether composites were found
 * @return Returns a composite node if one can be made, otherwise returns the original node
 */
private JexlNode visitLeafNode(JexlNode node, ExpandData eData) {
    String fieldName = (node instanceof ASTAndNode) ? JexlASTHelper.getIdentifier(node.jjtGetChild(0)) : JexlASTHelper.getIdentifier(node);
    
    Multimap<String,JexlNode> leafNodes = LinkedHashMultimap.create();
    leafNodes.put(fieldName, node);
    
    List<Composite> foundComposites = findComposites(leafNodes, eData.andedNodes, eData.usedAndedNodes);
    
    JexlNode resultNode = node;
    
    // if composites were found, create JexlNodes from them
    if (!foundComposites.isEmpty()) {
        List<JexlNode> compositeNodes = createCompositeNodes(foundComposites);
        
        if (!compositeNodes.isEmpty()) {
            eData.foundComposite = true;
            resultNode = createUnwrappedAndNode(compositeNodes);
        }
    }
    
    return resultNode;
}
 
源代码6 项目: datawave   文件: ExpandCompositeTerms.java
/**
 * Using the leaf nodes and anded nodes passed in, attempts to create composites from those nodes. The generated composites are required to contain at least
 * one of the leaf nodes.
 *
 * @param leafNodes
 *            A multimap of leaf child nodes, keyed by field name, from the parent node
 * @param andedNodes
 *            A multimap of anded nodes, keyed by field name, passed down from our ancestors
 * @param usedLeafNodes
 *            A multimap of used leaf child nodes, keyed by field name, used to create the returned composites
 * @param usedAndedNodes
 *            A multimap of used anded nodes, keyed by field name, used to create the returned composites
 * @return A list of composites which can be created from the given leaf and anded nodes
 */
private List<Composite> findComposites(Multimap<String,JexlNode> leafNodes, Multimap<String,JexlNode> andedNodes, Multimap<String,JexlNode> usedLeafNodes,
                Multimap<String,JexlNode> usedAndedNodes) {
    
    // determine what composites can be made with these fields
    Multimap<String,String> filteredCompositeToFieldMap = getFilteredCompositeToFieldMap(leafNodes.keySet(), andedNodes.keySet());
    
    // TODO: Update this to use some kind of cardinality-based heuristic to sort the composites
    // order the composite to field map in order of preference
    filteredCompositeToFieldMap = orderByCollectionSize(filteredCompositeToFieldMap);
    
    // for each of the required fields, if is is an overloaded composite field,
    // we may need to create or tweak the leaf node's range, so we add a self-mapping
    Multimap<String,String> overloadedCompositeMap = LinkedHashMultimap.create();
    for (String requiredField : leafNodes.keySet())
        if (CompositeIngest.isOverloadedCompositeField(config.getCompositeToFieldMap(), requiredField))
            overloadedCompositeMap.put(requiredField, requiredField);
    
    // Add overloaded composite entries to the set of entries
    List<Entry<String,Collection<String>>> compositeFieldMapList = new ArrayList<>(filteredCompositeToFieldMap.asMap().entrySet());
    compositeFieldMapList.addAll(overloadedCompositeMap.asMap().entrySet());
    return findComposites(compositeFieldMapList, leafNodes, andedNodes, usedLeafNodes, usedAndedNodes);
}
 
public Collection<IdeExtendedRepoFileDependency> extractRepoFileDependencies(DependencyHandler dependencyHandler, Collection<Configuration> plusConfigurations, Collection<Configuration> minusConfigurations, boolean downloadSources, boolean downloadJavadoc) {
    // can have multiple IDE dependencies with same component identifier (see GRADLE-1622)
    Multimap<ComponentIdentifier, IdeExtendedRepoFileDependency> resolvedDependenciesComponentMap = LinkedHashMultimap.create();
    for (IdeExtendedRepoFileDependency dep : resolvedExternalDependencies(plusConfigurations, minusConfigurations)) {
        resolvedDependenciesComponentMap.put(toComponentIdentifier(dep.getId()), dep);
    }

    List<Class<? extends Artifact>> artifactTypes = new ArrayList<Class<? extends Artifact>>(2);
    if (downloadSources) {
        artifactTypes.add(SourcesArtifact.class);
    }

    if (downloadJavadoc) {
        artifactTypes.add(JavadocArtifact.class);
    }

    downloadAuxiliaryArtifacts(dependencyHandler, resolvedDependenciesComponentMap, artifactTypes);

    Collection<UnresolvedIdeRepoFileDependency> unresolvedDependencies = unresolvedExternalDependencies(plusConfigurations, minusConfigurations);
    Collection<IdeExtendedRepoFileDependency> resolvedDependencies = resolvedDependenciesComponentMap.values();

    Collection<IdeExtendedRepoFileDependency> resolvedAndUnresolved = new ArrayList<IdeExtendedRepoFileDependency>(unresolvedDependencies.size() + resolvedDependencies.size());
    resolvedAndUnresolved.addAll(resolvedDependencies);
    resolvedAndUnresolved.addAll(unresolvedDependencies);
    return resolvedAndUnresolved;
}
 
源代码8 项目: bazel   文件: ResourceSymbols.java
/**
 * Loads the SymbolTables from a list of SymbolFileProviders.
 *
 * @param dependencies The full set of library symbols to load.
 * @param executor The executor use during loading.
 * @param packageToExclude A string package to elide if it exists in the providers.
 * @return A list of loading {@link ResourceSymbols} instances.
 * @throws ExecutionException
 * @throws InterruptedException when there is an error loading the symbols.
 */
public static Multimap<String, ListenableFuture<ResourceSymbols>> loadFrom(
    Iterable<? extends SymbolFileProvider> dependencies,
    ListeningExecutorService executor,
    @Nullable String packageToExclude)
    throws InterruptedException, ExecutionException {
  Map<SymbolFileProvider, ListenableFuture<String>> providerToPackage = new LinkedHashMap<>();
  for (SymbolFileProvider dependency : dependencies) {
    providerToPackage.put(
        dependency, executor.submit(new PackageParsingTask(dependency.getManifest())));
  }
  Multimap<String, ListenableFuture<ResourceSymbols>> packageToTable =
      LinkedHashMultimap.create();
  for (Map.Entry<SymbolFileProvider, ListenableFuture<String>> entry :
      providerToPackage.entrySet()) {
    File symbolFile = entry.getKey().getSymbolFile();
    if (!Objects.equals(entry.getValue().get(), packageToExclude)) {
      packageToTable.put(entry.getValue().get(), load(symbolFile.toPath(), executor));
    }
  }
  return packageToTable;
}
 
源代码9 项目: raml-java-tools   文件: PluginManager.java
public static PluginManager createPluginManager(String pluginFileName) {

    try {
      SetMultimap<String, Class<?>> info = LinkedHashMultimap.create();
      Enumeration<URL> resourcesFiles = PluginManager.class.getClassLoader().getResources(pluginFileName);

      while (resourcesFiles.hasMoreElements()) {
        URL url = resourcesFiles.nextElement();
        Properties properties = new Properties();
        loadProperties(url, properties);
        buildPluginNames(info, properties);
      }

      return new PluginManager(info);

    } catch (IOException e) {

      throw new GenerationException(e);
    }

  }
 
源代码10 项目: NullAway   文件: NullAway.java
/**
 * @param entities field init info
 * @param state visitor state
 * @return a map from each constructor C to the nonnull fields that C does *not* initialize
 */
private SetMultimap<MethodTree, Symbol> checkConstructorInitialization(
    FieldInitEntities entities, VisitorState state) {
  SetMultimap<MethodTree, Symbol> result = LinkedHashMultimap.create();
  Set<Symbol> nonnullInstanceFields = entities.nonnullInstanceFields();
  Trees trees = getTreesInstance(state);
  boolean isExternalInit = isExternalInit(entities.classSymbol());
  for (MethodTree constructor : entities.constructors()) {
    if (constructorInvokesAnother(constructor, state)) {
      continue;
    }
    if (constructor.getParameters().size() == 0 && isExternalInit) {
      // external framework initializes fields in this case
      continue;
    }
    Set<Element> guaranteedNonNull =
        guaranteedNonNullForConstructor(entities, state, trees, constructor);
    for (Symbol fieldSymbol : nonnullInstanceFields) {
      if (!guaranteedNonNull.contains(fieldSymbol)) {
        result.put(constructor, fieldSymbol);
      }
    }
  }
  return result;
}
 
源代码11 项目: j2cl   文件: TypeDeclaration.java
/**
 * Builds and caches a mapping from method override signature to matching method descriptors from
 * the entire super-type hierarchy. This map can *greatly* speed up method override checks.
 */
@Memoized
Multimap<String, MethodDescriptor> getMethodDescriptorsByOverrideSignature() {
  Multimap<String, MethodDescriptor> methodDescriptorsByOverrideSignature =
      LinkedHashMultimap.create();

  for (MethodDescriptor declaredMethodDescriptor : getDeclaredMethodDescriptors()) {
    if (declaredMethodDescriptor.isPolymorphic()) {
      methodDescriptorsByOverrideSignature.put(
          declaredMethodDescriptor.getOverrideSignature(), declaredMethodDescriptor);
    }
  }

  // Recurse into immediate super class and interfaces for overridden method.
  if (getSuperTypeDeclaration() != null) {
    methodDescriptorsByOverrideSignature.putAll(
        getSuperTypeDeclaration().getMethodDescriptorsByOverrideSignature());
  }

  for (DeclaredTypeDescriptor interfaceTypeDescriptor : getInterfaceTypeDescriptors()) {
    methodDescriptorsByOverrideSignature.putAll(
        interfaceTypeDescriptor.getTypeDeclaration().getMethodDescriptorsByOverrideSignature());
  }

  return methodDescriptorsByOverrideSignature;
}
 
源代码12 项目: j2cl   文件: JsInteropRestrictionsChecker.java
private static Multimap<String, MemberDescriptor> collectInstanceNames(
    DeclaredTypeDescriptor typeDescriptor) {
  if (typeDescriptor == null) {
    return LinkedHashMultimap.create();
  }

  // The supertype of an interface is java.lang.Object. java.lang.Object methods need to be
  // considered when checking for name collisions.
  // TODO(b/135140069): remove if the model starts including java.lang.Object as the supertype of
  // interfaces.
  DeclaredTypeDescriptor superTypeDescriptor =
      typeDescriptor.isInterface() && !typeDescriptor.isNative()
          ? TypeDescriptors.get().javaLangObject
          : typeDescriptor.getSuperTypeDescriptor();
  Multimap<String, MemberDescriptor> instanceMembersByName =
      collectInstanceNames(superTypeDescriptor);
  for (MemberDescriptor member : typeDescriptor.getDeclaredMemberDescriptors()) {
    if (isInstanceJsMember(member)) {
      addMember(instanceMembersByName, member);
    }
  }
  return instanceMembersByName;
}
 
源代码13 项目: flashback   文件: MatchRuleUtilsTest.java
@Test
public void testHeaderBlacklistMatchEmptyBL()
    throws Exception {
  Multimap<String, String> headers1 = LinkedHashMultimap.create();
  headers1.put("key1", "value1");
  headers1.put("key2", "value2");
  RecordedHttpRequest recordedHttpRequest1 = new RecordedHttpRequest(null, null, headers1, null);

  Multimap<String, String> headers2 = LinkedHashMultimap.create();
  headers2.put("key1", "value1");
  headers2.put("key2", "value2");
  RecordedHttpRequest recordedHttpRequest2 = new RecordedHttpRequest(null, null, headers2, null);

  Set<String> blList = new HashSet<>();
  MatchRule matchRule = MatchRuleUtils.matchHeadersWithBlacklist(blList);

  Assert.assertTrue(matchRule.test(recordedHttpRequest1, recordedHttpRequest2));
}
 
源代码14 项目: xtext-extras   文件: TypeConformanceComputer.java
protected LightweightTypeReference doGetCommonSuperType(List<LightweightTypeReference> types) {
	LightweightTypeReference firstType = types.get(0);
	final List<LightweightTypeReference> tail = types.subList(1, types.size());
	// mapping from rawtype to resolved parameterized types
	// used to determine the correct type arguments
	Multimap<JvmType, LightweightTypeReference> all = LinkedHashMultimap.create();
	// cumulated rawtype to max distance (used for sorting)
	Multiset<JvmType> cumulatedDistance = LinkedHashMultiset.create();
	
	initializeDistance(firstType, all, cumulatedDistance);
	cumulateDistance(tail, all, cumulatedDistance);
	
	List<Entry<JvmType>> candidates = Lists.newArrayList(cumulatedDistance.entrySet());
	if (candidates.size() == 1) { // only one super type -> should be java.lang.Object
		JvmType firstRawType = candidates.get(0).getElement();
		return getFirstForRawType(all, firstRawType);
	}
	inplaceSortByDistanceAndName(candidates);
	List<LightweightTypeReference> referencesWithSameDistance = getMostSpecialCandidates(types, all, candidates);
	return wrapInCompoundTypeIfNecessary(referencesWithSameDistance);
}
 
源代码15 项目: flashback   文件: MatchRuleUtilsTest.java
@Test
public void testHeaderBlacklistMatch()
    throws Exception {
  Multimap<String, String> headers1 = LinkedHashMultimap.create();
  headers1.put("key2", "value2");
  headers1.put("key3", "value3");
  RecordedHttpRequest recordedHttpRequest1 = new RecordedHttpRequest(null, null, headers1, null);

  Multimap<String, String> headers2 = LinkedHashMultimap.create();
  headers2.put("key1", "value1");
  headers2.put("key2", "value2");
  headers2.put("key3", "value3");
  RecordedHttpRequest recordedHttpRequest2 = new RecordedHttpRequest(null, null, headers2, null);

  Set<String> blList = new HashSet<>();
  blList.add("key1");

  MatchRule matchRule = MatchRuleUtils.matchHeadersWithBlacklist(blList);

  Assert.assertTrue(matchRule.test(recordedHttpRequest1, recordedHttpRequest2));
}
 
public String getJavaStubSource(IEObjectDescription description, IResourceDescription resourceDescription) {
	if(isNestedType(description) || !isJvmDeclaredType(description)) {
		return null;
	}
	Multimap<QualifiedName, IEObjectDescription> owner2nested = LinkedHashMultimap.create();
	for(IEObjectDescription other: resourceDescription.getExportedObjects()) {
		if(isJvmDeclaredType(other) && isNestedType(other))
			owner2nested.put(getOwnerClassName(other.getQualifiedName()), other);
	}
	StringBuilder classSignatureBuilder = new StringBuilder();
	QualifiedName qualifiedName = description.getQualifiedName();
	if (qualifiedName.getSegments().size() > 1) {
		String string = qualifiedName.toString();
		classSignatureBuilder.append("package " + string.substring(0, string.lastIndexOf('.')) + ";");
	}
	appendType(description, owner2nested, classSignatureBuilder);
	return classSignatureBuilder.toString();
}
 
源代码17 项目: timely   文件: TimelyUser.java
@JsonCreator
public TimelyUser(@JsonProperty(value = "dn", required = true) SubjectIssuerDNPair dn,
        @JsonProperty(value = "userType", required = true) UserType userType,
        @JsonProperty("auths") Collection<String> auths, @JsonProperty("roles") Collection<String> roles,
        @JsonProperty("roleToAuthMapping") Multimap<String, String> roleToAuthMapping,
        @JsonProperty(value = "creationTime", defaultValue = "-1L") long creationTime,
        @JsonProperty(value = "expirationTime", defaultValue = "-1L") long expirationTime) {
    this.name = dn.toString();
    this.commonName = DnUtils.getCommonName(dn.subjectDN());
    this.dn = dn;
    this.userType = userType;
    this.auths = auths == null ? Collections.emptyList() : new LinkedHashSet<>(auths);
    this.unmodifiableAuths = Collections.unmodifiableCollection(this.auths);
    this.roles = roles == null ? Collections.emptyList() : new LinkedHashSet<>(roles);
    this.unmodifiableRoles = Collections.unmodifiableCollection(this.roles);
    this.roleToAuthMapping = roleToAuthMapping == null ? LinkedHashMultimap.create()
            : Multimaps.unmodifiableMultimap(LinkedHashMultimap.create(roleToAuthMapping));
    this.creationTime = creationTime;
    this.expirationTime = expirationTime;
}
 
源代码18 项目: flashback   文件: MatchHeadersTest.java
@Test
public void testMatchDifferentOrder()
    throws Exception {
  Multimap<String, String> headers1 = LinkedHashMultimap.create();
  headers1.put("key1", "value1");
  headers1.put("key2", "value2");
  RecordedHttpRequest recordedHttpRequest1 = new RecordedHttpRequest(null, null, headers1, null);

  Multimap<String, String> headers2 = LinkedHashMultimap.create();
  headers2.put("key2", "value2");
  headers2.put("key1", "value1");
  RecordedHttpRequest recordedHttpRequest2 = new RecordedHttpRequest(null, null, headers2, null);
  MatchRule matchRule = new MatchHeaders();

  Assert.assertTrue(matchRule.test(recordedHttpRequest1, recordedHttpRequest2));
}
 
@Before
public void setUp() throws SQLException {
    dataSourceMap.put(DATA_SOURCE_NAME, dataSource);
    when(dataSource.getConnection()).thenReturn(connection);
    when(connection.getMetaData()).thenReturn(databaseMetaData);
    when(resultSet.getMetaData()).thenReturn(mock(ResultSetMetaData.class));
    CachedDatabaseMetaData cachedDatabaseMetaData = new CachedDatabaseMetaData(databaseMetaData);
    when(shardingSphereConnection.getCachedConnections()).thenReturn(LinkedHashMultimap.create());
    when(shardingSphereConnection.getConnection(anyString())).thenReturn(connection);
    when(shardingSphereConnection.getDataSourceMap()).thenReturn(dataSourceMap);
    when(shardingSphereConnection.getSchemaContexts()).thenReturn(schemaContexts);
    SchemaContext schemaContext = mock(SchemaContext.class);
    ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
    RuntimeContext runtimeContext = mock(RuntimeContext.class);
    when(schemaContexts.getDefaultSchemaContext()).thenReturn(schemaContext);
    when(schemaContext.getSchema()).thenReturn(schema);
    when(schemaContext.getRuntimeContext()).thenReturn(runtimeContext);
    when(runtimeContext.getCachedDatabaseMetaData()).thenReturn(cachedDatabaseMetaData);
    when(schema.getRules()).thenReturn(Collections.singletonList(mockShardingRule()));
    shardingSphereDatabaseMetaData = new ShardingSphereDatabaseMetaData(shardingSphereConnection);
}
 
源代码20 项目: xtext-core   文件: ImportScope.java
protected Iterable<IEObjectDescription> getAliasedElements(Iterable<IEObjectDescription> candidates) {
	Multimap<QualifiedName, IEObjectDescription> keyToDescription = LinkedHashMultimap.create();
	Multimap<QualifiedName, ImportNormalizer> keyToNormalizer = HashMultimap.create();

	for (IEObjectDescription imported : candidates) {
		QualifiedName fullyQualifiedName = imported.getName();
		for (ImportNormalizer normalizer : normalizers) {
			QualifiedName alias = normalizer.deresolve(fullyQualifiedName);
			if (alias != null) {
				QualifiedName key = alias;
				if (isIgnoreCase()) {
					key = key.toLowerCase();
				}
				keyToDescription.put(key, new AliasedEObjectDescription(alias, imported));
				keyToNormalizer.put(key, normalizer);
			}
		}
	}
	for (QualifiedName name : keyToNormalizer.keySet()) {
		if (keyToNormalizer.get(name).size() > 1)
			keyToDescription.removeAll(name);
	}
	return keyToDescription.values();
}
 
源代码21 项目: swagger2markup   文件: TagUtils.java
/**
 * Groups the operations by tag. The key of the Multimap is the tag name.
 * The value of the Multimap is a PathOperation
 *
 * @param allOperations     all operations
 * @param operationOrdering comparator for operations, for a given tag
 * @return Operations grouped by Tag
 */
public static Multimap<String, SwaggerPathOperation> groupOperationsByTag(List<SwaggerPathOperation> allOperations, Comparator<PathOperation> operationOrdering) {

    Multimap<String, SwaggerPathOperation> operationsGroupedByTag;
    if (operationOrdering == null) {
        operationsGroupedByTag = LinkedHashMultimap.create();
    } else {
        operationsGroupedByTag = MultimapBuilder.linkedHashKeys().treeSetValues(operationOrdering).build();
    }
    for (SwaggerPathOperation operation : allOperations) {
        List<String> tags = operation.getOperation().getTags();

        Validate.notEmpty(tags, "Can't GroupBy.TAGS. Operation '%s' has no tags", operation);
        for (String tag : tags) {
            if (logger.isDebugEnabled()) {
                logger.debug("Added path operation '{}' to tag '{}'", operation, tag);
            }
            operationsGroupedByTag.put(tag, operation);
        }
    }

    return operationsGroupedByTag;
}
 
源代码22 项目: flashback   文件: MatchRuleUtilsTest.java
@Test
public void testMethodUriBodyWithAnyBoundaryMatchForDifferentUri()
    throws Exception {
  Multimap<String, String> headers = LinkedHashMultimap.create();
  headers.put("key1", "value1");
  headers.put("Content-Type", "multipart/form-data; boundary=wxyz1234abcd5e");

  RecordedHttpBody body = new RecordedStringHttpBody("------wxyz1234abcd5e\nContent-Disposition: form-data; name=\"org\" \ngoogle\n------wxyz1234abcd5e");
  RecordedHttpRequest recordedHttpRequest1 =
      new RecordedHttpRequest("POST", new URI("http://www.linkedin.com/"), headers, body);
  RecordedHttpRequest recordedHttpRequest2 =
      new RecordedHttpRequest("POST", new URI("http://www.google.com/"), headers, body);

  MatchRule matchRule = MatchRuleUtils.matchMethodUriBodyWithAnyBoundary();

  Assert.assertFalse(matchRule.test(recordedHttpRequest1, recordedHttpRequest2));
  Assert.assertTrue(matchRule.getMatchFailureDescriptionForRequests(recordedHttpRequest1, recordedHttpRequest2).contains("URI Mismatch"));
}
 
源代码23 项目: flashback   文件: SceneDeserializer.java
private Multimap<String, String> createHeaders()
    throws IOException {
  if (!isValidOptionalField(SceneSerializationConstant.SCENE_TAG_HTTPHEADERS)) {
    return null;
  }
  skipStartObject();  // HTTPHEADERS

  Multimap<String, String> headers = LinkedHashMultimap.create();
  while (_jsonParser.nextToken() != JsonToken.END_OBJECT) {   //FIELD_NAME
    String key = _jsonParser.getCurrentName();
    _jsonParser.nextToken();   // VALUE_STRING
    String value = _jsonParser.getValueAsString();
    headers.put(key, value);
  }
  if (SceneSerializationConstant.SCENE_TAG_HTTPHEADERS.equals(_jsonParser.getCurrentName())
      && _jsonParser.getCurrentToken() == JsonToken.END_OBJECT) {
    skipEndObject();
  }
  return headers;
}
 
源代码24 项目: calcite   文件: JethroDataSqlDialect.java
private JethroInfo makeInfo(Connection jethroConnection) {
  try (Statement jethroStatement = jethroConnection.createStatement();
       ResultSet functionsTupleSet =
           jethroStatement.executeQuery("show functions extended")) {
    final Multimap<String, JethroSupportedFunction> supportedFunctions =
        LinkedHashMultimap.create();
    while (functionsTupleSet.next()) {
      String functionName = functionsTupleSet.getString(1);
      String operandsType = functionsTupleSet.getString(3);
      supportedFunctions.put(functionName,
          new JethroSupportedFunction(functionName, operandsType));
    }
    return new JethroInfo(supportedFunctions);
  } catch (Exception e) {
    final String msg =
        "Jethro server failed to execute 'show functions extended'";
    LOGGER.error(msg, e);
    throw new RuntimeException(msg
        + "; make sure your Jethro server is up to date", e);
  }
}
 
源代码25 项目: flashback   文件: MatchRuleUtilsTest.java
@Test
public void testEntireRequestMatch()
    throws Exception {

  Multimap<String, String> headers = LinkedHashMultimap.create();
  headers.put("key1", "value1");
  headers.put("key2", "value2");

  RecordedHttpBody body = new RecordedStringHttpBody("body");
  RecordedHttpRequest recordedHttpRequest1 =
      new RecordedHttpRequest("POST", new URI("http://www.google.com/"), headers, body);
  RecordedHttpRequest recordedHttpRequest2 =
      new RecordedHttpRequest("POST", new URI("http://www.google.com/"), headers, body);

  MatchRule entireRequestRule = MatchRuleUtils.matchEntireRequest();
  MatchRule methodUriRule = MatchRuleUtils.matchMethodUri();

  Assert.assertTrue(entireRequestRule.test(recordedHttpRequest1, recordedHttpRequest2));
  Assert.assertTrue(methodUriRule.test(recordedHttpRequest1, recordedHttpRequest2));
}
 
源代码26 项目: brooklyn-server   文件: BundleUpgradeParserTest.java
@Test
public void testParseKeyEqualsValueWildcardsAndDefault() throws Exception {
    String input = "foo, foo:9-bogus, *, *:8, \"*:[9-bogus,9-bogut)=foo9:10.bogus\"";
    Multimap<VersionedName, VersionRangedName> expected = LinkedHashMultimap.create();
    expected.putAll(new VersionedName("foo", DEFAULT_TARGET_VERSION),
        MutableList.of(
            VersionRangedName.fromString("foo:"+DEFAULT_WILDCARD_VERSION_RANGE, false),
            VersionRangedName.fromString("foo:"+"9-bogus", false)
        ));
    expected.putAll(new VersionedName(DEFAULT_WILDCARD_NAME, DEFAULT_TARGET_VERSION),
        MutableList.of(
            VersionRangedName.fromString(DEFAULT_WILDCARD_NAME+":"+DEFAULT_WILDCARD_VERSION_RANGE, false),
            VersionRangedName.fromString(DEFAULT_WILDCARD_NAME+":8", false)
        ));
    expected.put(new VersionedName("foo9", "10.bogus"),
        VersionRangedName.fromString(DEFAULT_WILDCARD_NAME+":[9-bogus,9-bogut)", false));
    assertParseListVersionRangedNameToVersionedNames(input, expected); 
}
 
源代码27 项目: flashback   文件: MatchRuleUtilsTest.java
@Test
public void testDifferentHeaders()
    throws Exception {

  Multimap<String, String> headers1 = LinkedHashMultimap.create();
  headers1.put("key1", "value1");
  headers1.put("key2", "value2");

  Multimap<String, String> headers2 = LinkedHashMultimap.create();
  headers2.put("key1", "value1");
  headers2.put("key3", "value3");

  RecordedHttpRequest recordedHttpRequest1 =
      new RecordedHttpRequest("GET", new URI("http://www.google.com/"), headers1, null);
  RecordedHttpRequest recordedHttpRequest2 =
      new RecordedHttpRequest("GET", new URI("http://www.google.com/"), headers2, null);

  MatchRule entireRequestRule = MatchRuleUtils.matchEntireRequest();
  MatchRule methodUriRule = MatchRuleUtils.matchMethodUri();

  Assert.assertFalse(entireRequestRule.test(recordedHttpRequest1, recordedHttpRequest2));
  Assert.assertTrue(methodUriRule.test(recordedHttpRequest1, recordedHttpRequest2));
  Assert.assertTrue(entireRequestRule.getMatchFailureDescriptionForRequests(recordedHttpRequest1, recordedHttpRequest2).contains("HTTP Headers Mismatch"));
}
 
源代码28 项目: flashback   文件: MatchRuleUtilsTest.java
@Test
public void testDifferentURIs()
    throws Exception {

  Multimap<String, String> headers = LinkedHashMultimap.create();
  headers.put("key1", "value1");
  headers.put("key2", "value2");

  RecordedHttpRequest recordedHttpRequest1 =
      new RecordedHttpRequest("GET", new URI("http://www.google.com/"), headers, null);
  RecordedHttpRequest recordedHttpRequest2 =
      new RecordedHttpRequest("GET", new URI("http://www.google.com/foo/"), headers, null);

  MatchRule entireRequestRule = MatchRuleUtils.matchEntireRequest();
  MatchRule methodUriRule = MatchRuleUtils.matchMethodUri();

  Assert.assertFalse(entireRequestRule.test(recordedHttpRequest1, recordedHttpRequest2));
  Assert.assertFalse(methodUriRule.test(recordedHttpRequest1, recordedHttpRequest2));
  Assert.assertTrue(entireRequestRule.getMatchFailureDescriptionForRequests(recordedHttpRequest1, recordedHttpRequest2).contains("URI Mismatch"));
  Assert.assertTrue(entireRequestRule.getMatchFailureDescriptionForRequests(recordedHttpRequest1, recordedHttpRequest2).contains("URI Mismatch"));
}
 
public static void main(String[] args) {
    String INPUT_TEXT = "Hello World! Hello All! Hi World!";
    // Parse text to words and index
    List<String> words = Arrays.asList(INPUT_TEXT.split(" "));
    // Create Multimap
    Multimap<String, Integer> multiMap = LinkedHashMultimap.create();

    // Fill Multimap
    int i = 0;
    for(String word: words) {
        multiMap.put(word, i);
        i++;
    }

    // Print all words
    System.out.println(multiMap); // print {Hello=[0, 2], World!=[1, 5], All!=[3], Hi=[4]}-in predictable iteration order
    // Print all unique words
    System.out.println(multiMap.keySet());    // print [Hello, World!, All!, Hi]- in predictable iteration order

    // Print all indexes
    System.out.println("Hello = " + multiMap.get("Hello"));    // print [0, 2]
    System.out.println("World = " + multiMap.get("World!"));    // print [1, 5]
    System.out.println("All = " + multiMap.get("All!"));    // print [3]
    System.out.println("Hi = " + multiMap.get("Hi"));    // print [4]
    System.out.println("Empty = " + multiMap.get("Empty"));    // print []

    // Print count all words
    System.out.println(multiMap.size());    //print 6

    // Print count unique words
    System.out.println(multiMap.keySet().size());    //print 4
}
 
public static void main(String[] args) {
    String INPUT_TEXT = "Hello World! Hello All! Hi World!";
    // Разберем текст на слова и индексы
    List<String> words = Arrays.asList(INPUT_TEXT.split(" "));
    // Создаем Multimap
    Multimap<String, Integer> multiMap = LinkedHashMultimap.create();

    // Заполним Multimap
    int i = 0;
    for(String word: words) {
        multiMap.put(word, i);
        i++;
    }

    // Выводим все вхождения слов в текст
    System.out.println(multiMap); // напечатает {Hello=[0, 2], World!=[1, 5], All!=[3], Hi=[4]}-в порядке добавления
    // Выводим все уникальные слова
    System.out.println(multiMap.keySet());    // напечатает [Hello, World!, All!, Hi]- в порядке добавления

    // Выводим все индексы вхождения слова в текст
    System.out.println("Hello = " + multiMap.get("Hello"));    // напечатает [0, 2]
    System.out.println("World = " + multiMap.get("World!"));    // напечатает [1, 5]
    System.out.println("All = " + multiMap.get("All!"));    // напечатает [3]
    System.out.println("Hi = " + multiMap.get("Hi"));    // напечатает [4]
    System.out.println("Empty = " + multiMap.get("Empty"));    // напечатает []

    // Выводим общее количества всех слов в тексте
    System.out.println(multiMap.size());    //напечатает 6

    // Выводим общее количество всех уникальных слов
    System.out.println(multiMap.keySet().size());    //напечатает 4
}
 
 同包方法