Example usage for com.google.common.collect Table remove

List of usage examples for com.google.common.collect Table remove

Introduction

In this page you can find the example usage for com.google.common.collect Table remove.

Prototype

@Nullable
V remove(@Nullable Object rowKey, @Nullable Object columnKey);

Source Link

Document

Removes the mapping, if any, associated with the given keys.

Usage

From source file:com.google.gerrit.server.ReviewerSet.java

public static ReviewerSet fromApprovals(Iterable<PatchSetApproval> approvals) {
    PatchSetApproval first = null;/*  w  w w  .  j  ava2  s  . co m*/
    Table<ReviewerStateInternal, Account.Id, Timestamp> reviewers = HashBasedTable.create();
    for (PatchSetApproval psa : approvals) {
        if (first == null) {
            first = psa;
        } else {
            checkArgument(
                    first.getKey().getParentKey().getParentKey()
                            .equals(psa.getKey().getParentKey().getParentKey()),
                    "multiple change IDs: %s, %s", first.getKey(), psa.getKey());
        }
        Account.Id id = psa.getAccountId();
        reviewers.put(REVIEWER, id, psa.getGranted());
        if (psa.getValue() != 0) {
            reviewers.remove(CC, id);
        }
    }
    return new ReviewerSet(reviewers);
}

From source file:com.android.tools.idea.uibuilder.property.NlProperties.java

private static Table<String, String, NlPropertyItem> combine(
        @NotNull Table<String, String, NlPropertyItem> properties,
        @Nullable Table<String, String, NlPropertyItem> combinedProperties) {
    if (combinedProperties == null) {
        return properties;
    }/*from  w  w w  . j  av  a2 s  .com*/
    List<String> namespaces = new ArrayList<>(combinedProperties.rowKeySet());
    List<String> propertiesToRemove = new ArrayList<>();
    for (String namespace : namespaces) {
        propertiesToRemove.clear();
        for (Map.Entry<String, NlPropertyItem> entry : combinedProperties.row(namespace).entrySet()) {
            NlPropertyItem other = properties.get(namespace, entry.getKey());
            if (!entry.getValue().sameDefinition(other)) {
                propertiesToRemove.add(entry.getKey());
            }
        }
        for (String propertyName : propertiesToRemove) {
            combinedProperties.remove(namespace, propertyName);
        }
    }
    // Never include the ID attribute when looking at multiple components:
    combinedProperties.remove(ANDROID_URI, ATTR_ID);
    return combinedProperties;
}

From source file:rapture.sheet.memory.InMemorySheet.java

public Boolean delete(int row, int column, int dimension) {
    Table<Integer, Integer, RaptureSheetCell> table = dimToData.get(dimension);
    if (table == null) {
        return false;
    } else {//w w  w.  jav  a 2s .  c  o m
        return table.remove(row, column) != null;
    }
}

From source file:es.upm.dit.xsdinferencer.merge.mergerimpl.TypeMergerImpl.java

private void removedUnusedSchemaElements(Schema schema) {
    boolean changed = true;
    Table<String, String, SchemaElement> schemaElements = schema.getElements();
    mainLoop: while (changed) {
        changed = false;/* www  .  j av a  2  s . com*/
        for (String namespaceURI : schemaElements.rowKeySet()) {
            elementInnerLoop: for (String key : schemaElements.row(namespaceURI).keySet()) {
                SchemaElement currentSchemaElement = schemaElements.get(namespaceURI, key);
                if (currentSchemaElement.isValidRoot())
                    continue elementInnerLoop;
                for (ComplexType complexType : schema.getComplexTypes().values()) {
                    if (complexType.getAutomaton().containsNode(currentSchemaElement))
                        continue elementInnerLoop;
                }
                //If no complex type contains it and it is not a valid root, we delete it
                schemaElements.remove(namespaceURI, key);
                changed = true;
                continue mainLoop;
            }
        }
    }
}

From source file:com.android.tools.idea.uibuilder.property.NlProperties.java

@NotNull
private Table<String, String, NlPropertyItem> getPropertiesWithReadLock(@NotNull AndroidFacet facet,
        @NotNull List<NlComponent> components, @NotNull GradleDependencyManager dependencyManager) {
    ResourceManager localResourceManager = facet.getLocalResourceManager();
    ResourceManager systemResourceManager = facet.getSystemResourceManager();
    if (systemResourceManager == null) {
        Logger.getInstance(NlProperties.class)
                .error("No system resource manager for module: " + facet.getModule().getName());
        return ImmutableTable.of();
    }//from   w  ww  . j av  a2s.c  o  m

    AttributeDefinitions localAttrDefs = localResourceManager.getAttributeDefinitions();
    AttributeDefinitions systemAttrDefs = systemResourceManager.getAttributeDefinitions();

    Table<String, String, NlPropertyItem> combinedProperties = null;

    for (NlComponent component : components) {
        XmlTag tag = component.getTag();
        if (!tag.isValid()) {
            return ImmutableTable.of();
        }

        XmlElementDescriptor elementDescriptor = myDescriptorProvider.getDescriptor(tag);
        if (elementDescriptor == null) {
            return ImmutableTable.of();
        }

        XmlAttributeDescriptor[] descriptors = elementDescriptor.getAttributesDescriptors(tag);
        Table<String, String, NlPropertyItem> properties = HashBasedTable.create(3, descriptors.length);

        for (XmlAttributeDescriptor desc : descriptors) {
            String namespace = getNamespace(desc, tag);
            AttributeDefinitions attrDefs = NS_RESOURCES.equals(namespace) ? systemAttrDefs : localAttrDefs;
            AttributeDefinition attrDef = attrDefs == null ? null : attrDefs.getAttrDefByName(desc.getName());
            NlPropertyItem property = NlPropertyItem.create(components, desc, namespace, attrDef);
            properties.put(StringUtil.notNullize(namespace), property.getName(), property);
        }

        // Exceptions:
        switch (tag.getName()) {
        case AUTO_COMPLETE_TEXT_VIEW:
            // An AutoCompleteTextView has a popup that is created at runtime.
            // Properties for this popup can be added to the AutoCompleteTextView tag.
            properties.put(ANDROID_URI, ATTR_POPUP_BACKGROUND, NlPropertyItem.create(components,
                    new AndroidAnyAttributeDescriptor(ATTR_POPUP_BACKGROUND), ANDROID_URI,
                    systemAttrDefs != null ? systemAttrDefs.getAttrDefByName(ATTR_POPUP_BACKGROUND) : null));
            break;
        }

        combinedProperties = combine(properties, combinedProperties);
    }

    // The following properties are deprecated in the support library and can be ignored by tools:
    assert combinedProperties != null;
    combinedProperties.remove(AUTO_URI, ATTR_PADDING_START);
    combinedProperties.remove(AUTO_URI, ATTR_PADDING_END);
    combinedProperties.remove(AUTO_URI, ATTR_THEME);

    setUpDesignProperties(combinedProperties);
    setUpSrcCompat(combinedProperties, facet, components, dependencyManager);

    initStarState(combinedProperties);

    //noinspection ConstantConditions
    return combinedProperties;
}

From source file:accumulo.balancer.GroupBalancer.java

private void balanceExtraExtra(Map<TServerInstance, TserverGroupInfo> tservers, int maxExtraGroups,
        Moves moves) {//from w  ww . j a  v  a2  s  .c o m
    Table<String, TServerInstance, TserverGroupInfo> surplusExtra = HashBasedTable.create();
    for (TserverGroupInfo tgi : tservers.values()) {
        Map<String, Integer> extras = tgi.getExtras();
        if (extras.size() > maxExtraGroups) {
            for (String group : extras.keySet()) {
                surplusExtra.put(group, tgi.getTserverInstance(), tgi);
            }
        }
    }

    ArrayList<Pair<String, TServerInstance>> serversGroupsToRemove = new ArrayList<>();
    ArrayList<TServerInstance> serversToRemove = new ArrayList<>();

    for (TserverGroupInfo destTgi : tservers.values()) {
        if (surplusExtra.size() == 0) {
            break;
        }

        Map<String, Integer> extras = destTgi.getExtras();
        if (extras.size() < maxExtraGroups) {
            serversToRemove.clear();
            serversGroupsToRemove.clear();
            for (String group : surplusExtra.rowKeySet()) {
                if (!extras.containsKey(group)) {
                    TserverGroupInfo srcTgi = surplusExtra.row(group).values().iterator().next();

                    moves.move(group, 1, srcTgi, destTgi);

                    if (srcTgi.getExtras().size() <= maxExtraGroups) {
                        serversToRemove.add(srcTgi.getTserverInstance());
                    } else {
                        serversGroupsToRemove
                                .add(new Pair<String, TServerInstance>(group, srcTgi.getTserverInstance()));
                    }

                    if (destTgi.getExtras().size() >= maxExtraGroups || moves.size() >= getMaxMigrations()) {
                        break;
                    }
                }
            }

            if (serversToRemove.size() > 0) {
                surplusExtra.columnKeySet().removeAll(serversToRemove);
            }

            for (Pair<String, TServerInstance> pair : serversGroupsToRemove) {
                surplusExtra.remove(pair.getFirst(), pair.getSecond());
            }

            if (moves.size() >= getMaxMigrations()) {
                break;
            }
        }
    }
}

From source file:accumulo.balancer.GroupBalancer.java

private void balanceExtraExpected(Map<TServerInstance, TserverGroupInfo> tservers, int expectedExtra,
        Moves moves) {//from  ww  w  .j  a  va 2 s  .  c om

    Table<String, TServerInstance, TserverGroupInfo> extraSurplus = HashBasedTable.create();

    for (TserverGroupInfo tgi : tservers.values()) {
        Map<String, Integer> extras = tgi.getExtras();
        if (extras.size() > expectedExtra) {
            for (String group : extras.keySet()) {
                extraSurplus.put(group, tgi.getTserverInstance(), tgi);
            }
        }
    }

    ArrayList<TServerInstance> emptyServers = new ArrayList<>();
    ArrayList<Pair<String, TServerInstance>> emptyServerGroups = new ArrayList<>();
    for (TserverGroupInfo destTgi : tservers.values()) {
        if (extraSurplus.size() == 0) {
            break;
        }

        Map<String, Integer> extras = destTgi.getExtras();
        if (extras.size() < expectedExtra) {
            emptyServers.clear();
            emptyServerGroups.clear();
            nextGroup: for (String group : extraSurplus.rowKeySet()) {
                if (!extras.containsKey(group)) {
                    Iterator<TserverGroupInfo> iter = extraSurplus.row(group).values().iterator();
                    TserverGroupInfo srcTgi = iter.next();

                    while (srcTgi.getExtras().size() <= expectedExtra) {
                        if (iter.hasNext()) {
                            srcTgi = iter.next();
                        } else {
                            continue nextGroup;
                        }
                    }

                    moves.move(group, 1, srcTgi, destTgi);

                    if (srcTgi.getExtras().size() <= expectedExtra) {
                        emptyServers.add(srcTgi.getTserverInstance());
                    } else if (srcTgi.getExtras().get(group) == null) {
                        emptyServerGroups
                                .add(new Pair<String, TServerInstance>(group, srcTgi.getTserverInstance()));
                    }

                    if (destTgi.getExtras().size() >= expectedExtra || moves.size() >= getMaxMigrations()) {
                        break;
                    }
                }
            }

            if (emptyServers.size() > 0) {
                extraSurplus.columnKeySet().removeAll(emptyServers);
            }

            for (Pair<String, TServerInstance> pair : emptyServerGroups) {
                extraSurplus.remove(pair.getFirst(), pair.getSecond());
            }

            if (moves.size() >= getMaxMigrations()) {
                break;
            }
        }
    }
}