Java Code Examples for com.google.common.collect.Multimap#clear()

The following examples show how to use com.google.common.collect.Multimap#clear() . 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: ExpandCompositeTermsTest.java    From datawave with Apache License 2.0 7 votes vote down vote up
@BeforeClass
public static void beforeClass() {
    Multimap<String,String> multimap = LinkedListMultimap.create();
    multimap.clear();
    multimap.put("MAKE_COLOR", "MAKE");
    multimap.put("MAKE_COLOR", "COLOR");
    multimap.put("COLOR_WHEELS", "COLOR");
    multimap.put("COLOR_WHEELS", "WHEELS");
    multimap.put("TEAM_NAME_POINTS", "TEAM");
    multimap.put("TEAM_NAME_POINTS", "NAME");
    multimap.put("TEAM_NAME_POINTS", "POINTS");
    multimap.put("TEAM_POINTS", "TEAM");
    multimap.put("TEAM_POINTS", "POINTS");
    compositeToFieldMap = Multimaps.unmodifiableMultimap(multimap);
    
    Map<String,String> sepMap = new HashMap<>();
    sepMap.put("MAKE_COLOR", ",");
    sepMap.put("COLOR_WHEELS", ",");
    sepMap.put("TEAM_NAME_POINTS", ",");
    sepMap.put("TEAM_POINTS", ",");
    compositeFieldSeparators = Collections.unmodifiableMap(sepMap);
}
 
Example 2
Source File: BaseDataObjectTest.java    From emissary with Apache License 2.0 6 votes vote down vote up
@Test
public void testPutParametersWithMultimapAsMap() {
    final Multimap<String, String> map = ArrayListMultimap.create();
    map.put("ONE", "uno");
    map.put("ONE", "ein");
    map.put("ONE", "neo");
    map.put("TWO", "deux");
    this.b.putParameter("TWO", "dos");
    this.b.putParameters(map.asMap());
    assertEquals("Multimap parameters should merge", 3, this.b.getParameter("ONE").size());
    assertEquals("Multimap parameters should merge", 2, this.b.getParameter("TWO").size());
    map.clear();
    assertEquals("Multimap parameters should be detached from callers map", 3, this.b.getParameter("ONE").size());
    assertEquals("Multimap parameters should be detached from callers map", 2, this.b.getParameter("TWO").size());
    map.put("THREE", "tres");
    this.b.mergeParameters(map.asMap());
    assertEquals("Multimap parameters should merge", 1, this.b.getParameter("THREE").size());
    map.put("FOUR", "cuatro");
    this.b.putUniqueParameters(map.asMap());
    assertEquals("Multimap parameters should remain unique", 1, this.b.getParameter("THREE").size());
    assertEquals("Multimap params should add on unique", 1, this.b.getParameter("FOUR").size());
}
 
Example 3
Source File: DefaultFanout.java    From emodb with Apache License 2.0 6 votes vote down vote up
private void flush(List<String> eventKeys, Multimap<String, ByteBuffer> eventsByChannel,
                   int numOutboundReplicationEvents) {
    try (Timer.Context ignore = _eventFlushTimer.time()) {
        if (!eventsByChannel.isEmpty()) {
            _eventSink.apply(eventsByChannel);
            _eventsWrittenLocal.mark(eventsByChannel.size() - numOutboundReplicationEvents);
            _eventsWrittenOutboundReplication.mark(numOutboundReplicationEvents);
            eventsByChannel.clear();
        }
        if (!eventKeys.isEmpty()) {
            _eventSource.delete(eventKeys);
            _eventsRead.mark(eventKeys.size());
            eventKeys.clear();
        }
    }
}
 
Example 4
Source File: MultiCleartriggerCache.java    From n4js with Eclipse Public License 1.0 5 votes vote down vote up
/** Removes all cached values for a given key */
public void clear(String key) {
	Map<URI, Object> map = entryCache.get(key);
	Multimap<URI, URI> triggerMap = triggerCache.get(key);
	if (map != null) {
		map.clear();
	}
	if (triggerMap != null) {
		triggerMap.clear();
	}
}
 
Example 5
Source File: AbstractReferenceUpdater.java    From xtext-eclipse with Eclipse Public License 2.0 5 votes vote down vote up
protected void createClusteredReferenceUpdates(ElementRenameArguments elementRenameArguments,
		Multimap<URI, IReferenceDescription> resource2references, ResourceSet resourceSet,
		IRefactoringUpdateAcceptor updateAcceptor, StatusWrapper status, IProgressMonitor monitor) {
	SubMonitor progress = SubMonitor.convert(monitor, resource2references.keySet().size() + 1);
	if (loadTargetResources(resourceSet, elementRenameArguments, status, progress.newChild(1))) {
		if (getClusterSize() > 0) {
			Set<Resource> targetResources = newHashSet(resourceSet.getResources());
			Multimap<URI, IReferenceDescription> cluster = HashMultimap.create();
			SubMonitor clusterMonitor = progress.newChild(1);
			for (URI referringResourceURI : resource2references.keySet()) {
				cluster.putAll(referringResourceURI, resource2references.get(referringResourceURI));
				if (cluster.keySet().size() == getClusterSize()) {
					unloadNonTargetResources(resourceSet, targetResources);
					createReferenceUpdatesForCluster(elementRenameArguments, cluster, resourceSet, updateAcceptor, status, clusterMonitor);
					cluster.clear();
				}
			}
			if (!cluster.isEmpty()) {
				unloadNonTargetResources(resourceSet, targetResources);
				createReferenceUpdatesForCluster(elementRenameArguments, cluster, resourceSet, updateAcceptor,
						status, clusterMonitor);
			}
		} else {
			createReferenceUpdatesForCluster(elementRenameArguments, resource2references, resourceSet,
					updateAcceptor, status, progress.newChild(resource2references.keySet().size()));
		}
	}
}
 
Example 6
Source File: OLAPJoinRel.java    From kylin-on-parquet-v2 with Apache License 2.0 4 votes vote down vote up
@Override
    public void implementOLAP(OLAPImplementor implementor) {

        // create context for root join
        if (!(implementor.getParentNode() instanceof OLAPJoinRel) && !isParentMerelyPermutation(implementor)) {
            implementor.allocateContext();
        }
        //parent context
        this.context = implementor.getContext();
        this.context.allOlapJoins.add(this);
        this.isTopJoin = !this.context.hasJoin;
        this.context.hasJoin = true;

        boolean leftHasSubquery = false;
        boolean rightHasSubquery = false;

        // as we keep the first table as fact table, we need to visit from left to right
        implementor.fixSharedOlapTableScanOnTheLeft(this);
        implementor.visitChild(this.left, this);

        //current  has another context
        if (this.context != implementor.getContext() || ((OLAPRel) this.left).hasSubQuery()) {
            this.hasSubQuery = true;
            leftHasSubquery = true;
            // if child is also an OLAPJoin, then the context has already been popped
            if (this.context != implementor.getContext()) {
                implementor.freeContext();
            }
        }

        if (leftHasSubquery) {
            // After KYLIN-2579, leftHasSubquery means right side have to be separate olap context 
            implementor.setNewOLAPContextRequired(true);
        }

        implementor.fixSharedOlapTableScanOnTheRight(this);
        implementor.visitChild(this.right, this);
        if (this.context != implementor.getContext() || ((OLAPRel) this.right).hasSubQuery()) {
            this.hasSubQuery = true;
            rightHasSubquery = true;
            // if child is also an OLAPJoin, then the context has already been popped

            if (leftHasSubquery) {
                Preconditions.checkState(!implementor.isNewOLAPContextRequired());//should have been satisfied
                Preconditions.checkState(this.context != implementor.getContext(), "missing a new olapcontext");
            }

            if (this.context != implementor.getContext()) {
                implementor.freeContext();
            }
        }

        this.columnRowType = buildColumnRowType();

        if (isTopJoin) {
            this.context.afterJoin = true;
        }

        if (!this.hasSubQuery) {
//            this.context.allColumns.clear();

            // build JoinDesc
            Preconditions.checkState(this.getCondition() instanceof RexCall, "Cartesian Join is not supported.");

            RexCall condition = (RexCall) this.getCondition();
            JoinDesc join = buildJoin(condition);

            JoinRelType joinRelType = this.getJoinType();
            String joinType = joinRelType == JoinRelType.INNER ? "INNER"
                    : joinRelType == JoinRelType.LEFT ? "LEFT" : joinRelType == JoinRelType.RIGHT ? "RIGHT" : "FULL";
            join.setType(joinType);

            this.context.joins.add(join);
        } else {
            //When join contains subquery, the join-condition fields of fact_table will add into context.
            Multimap<TblColRef, TblColRef> joinCol = HashMultimap.create();
            translateJoinColumn(this.getCondition(), joinCol);

            for (Map.Entry<TblColRef, TblColRef> columnPair : joinCol.entries()) {
                TblColRef fromCol = (rightHasSubquery ? columnPair.getKey() : columnPair.getValue());
                this.context.subqueryJoinParticipants.add(fromCol);
            }
            joinCol.clear();
        }
    }
 
Example 7
Source File: EventMapper.java    From datawave with Apache License 2.0 4 votes vote down vote up
/**
 * This is where we apply a list of handlers to an event.
 *
 * @param key
 *            The key of the map process
 * @param value
 *            The event
 * @param handlers
 *            The list of handlers to apply
 * @param fields
 *            The list which keeps the last set of fields (retained in case the caller needs to handle a thrown exception)
 * @param context
 *            The context
 * @throws Exception
 */
public void processEvent(K1 key, RawRecordContainer value, List<DataTypeHandler<K1>> handlers, Multimap<String,NormalizedContentInterface> fields,
                Context context) throws Exception {
    IngestHelperInterface previousHelper = null;
    
    for (DataTypeHandler<K1> handler : handlers) {
        if (log.isTraceEnabled())
            log.trace("executing handler: " + handler.getClass().getName());
        
        // gather the fields
        IngestHelperInterface thisHelper = handler.getHelper(value.getDataType());
        
        // This handler has no helper for the event's data type. Therefore, we should
        // just move on to the next handler. This can happen, for example, with the
        // edge handler, depending on the event's data type.
        if (thisHelper == null) {
            if (log.isTraceEnabled())
                log.trace("Aborting processing due to null ingest helper");
            continue;
        }
        
        // Try to only parse the event once. Parse the event on the first pass and only if
        // the BaseIngestHelper class differs. The same class used by different handlers
        // *should* produce the same result.
        if (null == previousHelper || !previousHelper.getClass().getName().equals(thisHelper.getClass().getName())) {
            fields.clear();
            Throwable e = null;
            for (Map.Entry<String,NormalizedContentInterface> entry : getFields(value, handler).entries()) {
                // noinspection ThrowableResultOfMethodCallIgnored
                if (entry.getValue().getError() != null) {
                    e = entry.getValue().getError();
                }
                fields.put(entry.getKey(), entry.getValue());
            }
            if (e != null) {
                throw new FieldNormalizationError("Failed getting all fields", e);
            }
            
            // Event based metrics
            if (metricsEnabled) {
                metricsLabels.clear();
                metricsLabels.put("dataType", value.getDataType().typeName());
                
                metricsService.collect(Metric.EVENT_COUNT, metricsLabels.get(), fields, 1L);
                metricsService.collect(Metric.BYTE_COUNT, metricsLabels.get(), fields, (long) value.getRawData().length);
            }
            
            previousHelper = thisHelper;
        }
        
        Collection<FieldValidator> fieldValidators = validators.get(value.getDataType().outputName());
        for (FieldValidator validator : fieldValidators) {
            validator.validate(value, fields);
        }
        
        executeHandler(key, value, fields, handler, context);
        
        context.progress();
    }
}
 
Example 8
Source File: Partition.java    From Clusion with GNU General Public License v3.0 4 votes vote down vote up
public static Multimap<Integer, String> partitioning(Multimap<String, String> lookup) {

		// Partitions Creation
		Set<String> keys = lookup.keySet();

		int partitionId = 0;
		Multimap<Integer, String> partitions = ArrayListMultimap.create();
		int counter2 = 0;

		for (String key : keys) {
			Set<Integer> keys2 = partitions.keySet();
			List<String> inter = (List<String>) lookup.get(key);
			List<String> interTMP = new ArrayList<String>(inter);

			Printer.debugln("Step number: " + counter2++ + "Number of keywords " + keys.size());

			Set<String> set = new HashSet<String>(interTMP);
			Multimap<Integer, String> partitionsTMP = ArrayListMultimap.create();

			for (Integer key2 : keys2) {

				if (!set.isEmpty()) {
					Set<String> tmp = new HashSet<String>(partitions.get(key2));

					Set<String> intersection = Sets.intersection(tmp, set);

					Set<String> difference;

					if (intersection.isEmpty()) {
						difference = tmp;
					} else {
						difference = Sets.difference(tmp, intersection);
						set = Sets.difference(set, intersection);

					}

					if (!difference.isEmpty()) {
						partitionId = partitionId + 1;
						partitionsTMP.putAll(partitionId, difference);
					}

					if (!intersection.isEmpty()) {
						partitionId = partitionId + 1;
						partitionsTMP.putAll(partitionId, intersection);
					}

				} else {
					partitionId = partitionId + 1;
					partitionsTMP.putAll(partitionId, new HashSet<String>(partitions.get(key2)));
				}

			}

			interTMP = new ArrayList<String>(set);

			if (!interTMP.isEmpty()) {

				partitionId = partitionId + 1;
				partitionsTMP.putAll(partitionId, interTMP);

			}

			partitions = ArrayListMultimap.create(partitionsTMP);
			partitionsTMP.clear();
			interTMP.clear();

		}

		Printer.debugln("Partitions size " + partitions.keySet().size());
		Printer.debugln("\n");

		return partitions;
	}
 
Example 9
Source File: OLAPJoinRel.java    From kylin with Apache License 2.0 4 votes vote down vote up
@Override
    public void implementOLAP(OLAPImplementor implementor) {

        // create context for root join
        if (!(implementor.getParentNode() instanceof OLAPJoinRel) && !isParentMerelyPermutation(implementor)) {
            implementor.allocateContext();
        }
        //parent context
        this.context = implementor.getContext();
        this.context.allOlapJoins.add(this);
        this.isTopJoin = !this.context.hasJoin;
        this.context.hasJoin = true;

        boolean leftHasSubquery = false;
        boolean rightHasSubquery = false;

        // as we keep the first table as fact table, we need to visit from left to right
        implementor.fixSharedOlapTableScanOnTheLeft(this);
        implementor.visitChild(this.left, this);

        //current  has another context
        if (this.context != implementor.getContext() || ((OLAPRel) this.left).hasSubQuery()) {
            this.hasSubQuery = true;
            leftHasSubquery = true;
            // if child is also an OLAPJoin, then the context has already been popped
            if (this.context != implementor.getContext()) {
                implementor.freeContext();
            }
        }

        if (leftHasSubquery) {
            // After KYLIN-2579, leftHasSubquery means right side have to be separate olap context 
            implementor.setNewOLAPContextRequired(true);
        }

        implementor.fixSharedOlapTableScanOnTheRight(this);
        implementor.visitChild(this.right, this);
        if (this.context != implementor.getContext() || ((OLAPRel) this.right).hasSubQuery()) {
            this.hasSubQuery = true;
            rightHasSubquery = true;
            // if child is also an OLAPJoin, then the context has already been popped

            if (leftHasSubquery) {
                Preconditions.checkState(!implementor.isNewOLAPContextRequired());//should have been satisfied
                Preconditions.checkState(this.context != implementor.getContext(), "missing a new olapcontext");
            }

            if (this.context != implementor.getContext()) {
                implementor.freeContext();
            }
        }

        this.columnRowType = buildColumnRowType();

        if (isTopJoin) {
            this.context.afterJoin = true;
        }

        if (!this.hasSubQuery) {
//            this.context.allColumns.clear();

            // build JoinDesc
            Preconditions.checkState(this.getCondition() instanceof RexCall, "Cartesian Join is not supported.");

            RexCall condition = (RexCall) this.getCondition();
            JoinDesc join = buildJoin(condition);

            JoinRelType joinRelType = this.getJoinType();
            String joinType = joinRelType == JoinRelType.INNER ? "INNER"
                    : joinRelType == JoinRelType.LEFT ? "LEFT" : joinRelType == JoinRelType.RIGHT ? "RIGHT" : "FULL";
            join.setType(joinType);

            this.context.joins.add(join);
        } else {
            //When join contains subquery, the join-condition fields of fact_table will add into context.
            Multimap<TblColRef, TblColRef> joinCol = HashMultimap.create();
            translateJoinColumn(this.getCondition(), joinCol);

            for (Map.Entry<TblColRef, TblColRef> columnPair : joinCol.entries()) {
                TblColRef fromCol = (rightHasSubquery ? columnPair.getKey() : columnPair.getValue());
                this.context.subqueryJoinParticipants.add(fromCol);
            }
            joinCol.clear();
        }
    }