Example usage for com.google.common.collect ImmutableMap get

List of usage examples for com.google.common.collect ImmutableMap get

Introduction

In this page you can find the example usage for com.google.common.collect ImmutableMap get.

Prototype

V get(Object key);

Source Link

Document

Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key.

Usage

From source file:io.prestosql.plugin.jmx.JmxRecordSetProvider.java

public List<Object> getLiveRow(String objectName, List<? extends ColumnHandle> columns, long entryTimestamp)
        throws JMException {
    ImmutableMap<String, Optional<Object>> attributes = getAttributes(getColumnNames(columns), objectName);
    List<Object> row = new ArrayList<>();

    for (ColumnHandle column : columns) {
        JmxColumnHandle jmxColumn = (JmxColumnHandle) column;
        if (jmxColumn.getColumnName().equals(JmxMetadata.NODE_COLUMN_NAME)) {
            row.add(nodeId);//from w  w  w  .j a  v a 2 s .com
        } else if (jmxColumn.getColumnName().equals(JmxMetadata.OBJECT_NAME_NAME)) {
            row.add(objectName);
        } else if (jmxColumn.getColumnName().equals(JmxMetadata.TIMESTAMP_COLUMN_NAME)) {
            row.add(entryTimestamp);
        } else {
            Optional<Object> optionalValue = attributes.get(jmxColumn.getColumnName());
            if (optionalValue == null || !optionalValue.isPresent()) {
                row.add(null);
            } else {
                Object value = optionalValue.get();
                Class<?> javaType = jmxColumn.getColumnType().getJavaType();
                if (javaType == boolean.class) {
                    if (value instanceof Boolean) {
                        row.add(value);
                    } else {
                        // mbeans can lie about types
                        row.add(null);
                    }
                } else if (javaType == long.class) {
                    if (value instanceof Number) {
                        row.add(((Number) value).longValue());
                    } else {
                        // mbeans can lie about types
                        row.add(null);
                    }
                } else if (javaType == double.class) {
                    if (value instanceof Number) {
                        row.add(((Number) value).doubleValue());
                    } else {
                        // mbeans can lie about types
                        row.add(null);
                    }
                } else if (javaType == Slice.class) {
                    if (value.getClass().isArray()) {
                        // return a string representation of the array
                        if (value.getClass().getComponentType() == boolean.class) {
                            row.add(Arrays.toString((boolean[]) value));
                        } else if (value.getClass().getComponentType() == byte.class) {
                            row.add(Arrays.toString((byte[]) value));
                        } else if (value.getClass().getComponentType() == char.class) {
                            row.add(Arrays.toString((char[]) value));
                        } else if (value.getClass().getComponentType() == double.class) {
                            row.add(Arrays.toString((double[]) value));
                        } else if (value.getClass().getComponentType() == float.class) {
                            row.add(Arrays.toString((float[]) value));
                        } else if (value.getClass().getComponentType() == int.class) {
                            row.add(Arrays.toString((int[]) value));
                        } else if (value.getClass().getComponentType() == long.class) {
                            row.add(Arrays.toString((long[]) value));
                        } else if (value.getClass().getComponentType() == short.class) {
                            row.add(Arrays.toString((short[]) value));
                        } else {
                            row.add(Arrays.toString((Object[]) value));
                        }
                    } else {
                        row.add(value.toString());
                    }
                }
            }
        }
    }
    return row;
}

From source file:org.elasticsearch.rest.action.cat.RestNodeAttrsAction.java

private Table buildTable(RestRequest req, ClusterStateResponse state, NodesInfoResponse nodesInfo,
        NodesStatsResponse nodesStats) {
    boolean fullId = req.paramAsBoolean("full_id", false);

    DiscoveryNodes nodes = state.getState().nodes();
    Table table = getTableWithHeader(req);

    for (DiscoveryNode node : nodes) {
        NodeInfo info = nodesInfo.getNodesMap().get(node.id());
        ImmutableMap<String, String> attrs = node.getAttributes();
        for (String att : attrs.keySet()) {
            table.startRow();//from www . j  a  v a 2 s  .com
            table.addCell(node.name());
            table.addCell(fullId ? node.id() : Strings.substring(node.getId(), 0, 4));
            table.addCell(info == null ? null : info.getProcess().getId());
            table.addCell(node.getHostName());
            table.addCell(node.getHostAddress());
            if (node.address() instanceof InetSocketTransportAddress) {
                table.addCell(((InetSocketTransportAddress) node.address()).address().getPort());
            } else {
                table.addCell("-");
            }
            table.addCell(att);
            table.addCell(attrs.containsKey(att) ? attrs.get(att) : null);
            table.endRow();
        }
    }

    return table;
}

From source file:org.elasticsearch.index.gateway.blobstore.BlobStoreIndexShardGateway.java

private boolean commitPointFileExistsInBlobs(CommitPoint.FileInfo fileInfo,
        ImmutableMap<String, BlobMetaData> blobs) {
    BlobMetaData blobMetaData = blobs.get(fileInfo.name());
    if (blobMetaData != null) {
        if (blobMetaData.length() != fileInfo.length()) {
            return false;
        }//from   w w w .  java  2s.  c  o m
    } else if (blobs.containsKey(fileInfo.name() + ".part0")) {
        // multi part file sum up the size and check
        int part = 0;
        long totalSize = 0;
        while (true) {
            blobMetaData = blobs.get(fileInfo.name() + ".part" + part++);
            if (blobMetaData == null) {
                break;
            }
            totalSize += blobMetaData.length();
        }
        if (totalSize != fileInfo.length()) {
            return false;
        }
    } else {
        // no file, not exact and not multipart
        return false;
    }
    return true;
}

From source file:com.google.enterprise.connector.persist.HybridPersistentStore.java

@Override
public ImmutableMap<StoreContext, ConnectorStamps> getInventory() {
    ImmutableMap<StoreContext, ConnectorStamps> scheduleInventory = scheduleStore.getInventory();
    ImmutableMap<StoreContext, ConnectorStamps> stateInventory = stateStore.getInventory();
    ImmutableMap<StoreContext, ConnectorStamps> configurationInventory = configurationStore.getInventory();

    // TODO: This won't work for JdbcStore, as its StoreContext is
    // missing connectorDir.  This will correct itself when StoreContext
    // is changed to use ConnectorTypeName, rather than connectorDir.
    HashSet<StoreContext> contexts = new HashSet<StoreContext>();
    contexts.addAll(scheduleInventory.keySet());
    contexts.addAll(stateInventory.keySet());
    contexts.addAll(configurationInventory.keySet());

    ImmutableMap.Builder<StoreContext, ConnectorStamps> builder = ImmutableMap.builder();

    for (StoreContext context : contexts) {
        Stamp configurationStamp = null;
        Stamp checkpointStamp = null;/*from www.  j  a va2  s  .c  o m*/
        Stamp scheduleStamp = null;
        ConnectorStamps stamps = configurationInventory.get(context);
        if (stamps != null) {
            configurationStamp = stamps.getConfigurationStamp();
        }
        stamps = scheduleInventory.get(context);
        if (stamps != null) {
            scheduleStamp = stamps.getScheduleStamp();
        }
        stamps = stateInventory.get(context);
        if (stamps != null) {
            checkpointStamp = stamps.getCheckpointStamp();
        }
        builder.put(context, new ConnectorStamps(checkpointStamp, configurationStamp, scheduleStamp));
    }
    return builder.build();
}

From source file:google.registry.flows.domain.DomainCheckFlow.java

/** Handle the fee check extension. */
private ImmutableList<? extends ResponseExtension> getResponseExtensions(
        ImmutableMap<String, InternetDomainName> domainNames, DateTime now) throws EppException {
    FeeCheckCommandExtension<?, ?> feeCheck = eppInput.getSingleExtension(FeeCheckCommandExtension.class);
    if (feeCheck == null) {
        return ImmutableList.of(); // No fee checks were requested.
    }//from   w w w  .ja v  a2 s . c om
    ImmutableList.Builder<FeeCheckResponseExtensionItem> responseItems = new ImmutableList.Builder<>();
    for (FeeCheckCommandExtensionItem feeCheckItem : feeCheck.getItems()) {
        for (String domainName : getDomainNamesToCheckForFee(feeCheckItem, domainNames.keySet())) {
            FeeCheckResponseExtensionItem.Builder<?> builder = feeCheckItem.createResponseBuilder();
            handleFeeRequest(feeCheckItem, builder, domainNames.get(domainName), feeCheck.getCurrency(), now,
                    pricingLogic);
            responseItems.add(builder.setDomainNameIfSupported(domainName).build());
        }
    }
    return ImmutableList.of(feeCheck.createResponse(responseItems.build()));
}

From source file:dagger.internal.codegen.MembersInjectorGenerator.java

private MethodSpec injectorMethodForSubclasses(ImmutableMap<BindingKey, FieldSpec> dependencyFields,
        List<TypeVariableName> typeParameters, TypeName injectedTypeName, Element injectionElement,
        ImmutableSet<DependencyRequest> dependencies) {
    MethodSpec.Builder methodBuilder = methodBuilder(injectionSiteDelegateMethodName(injectionElement))
            .addModifiers(PUBLIC, STATIC).addParameter(injectedTypeName, "instance")
            .addTypeVariables(typeParameters);
    ImmutableList.Builder<CodeBlock> providedParameters = ImmutableList.builder();
    Set<String> parameterNames = new HashSet<>();
    for (DependencyRequest dependency : dependencies) {
        FieldSpec field = dependencyFields.get(dependency.bindingKey());
        ParameterSpec parameter = ParameterSpec.builder(field.type,
                staticInjectMethodDependencyParameterName(parameterNames, dependency, field)).build();
        methodBuilder.addParameter(parameter);
        providedParameters.add(frameworkTypeUsageStatement(CodeBlock.of("$N", parameter), dependency.kind()));
    }//from   w w  w  .  j a  v a 2s .  co m
    if (injectionElement.getKind().isField()) {
        methodBuilder.addStatement("instance.$L = $L", injectionElement.getSimpleName(),
                getOnlyElement(providedParameters.build()));
    } else {
        methodBuilder.addStatement("instance.$L($L)", injectionElement.getSimpleName(),
                makeParametersCodeBlock(providedParameters.build()));
    }
    return methodBuilder.build();
}

From source file:org.apache.cloudstack.outofbandmanagement.OutOfBandManagementServiceImpl.java

protected OutOfBandManagement updateConfig(final OutOfBandManagement outOfBandManagementConfig,
        final ImmutableMap<OutOfBandManagement.Option, String> options) {
    if (outOfBandManagementConfig == null) {
        throw new CloudRuntimeException("Out-of-band management is not configured for the host. Aborting.");
    }//from  ww w .ja va  2 s .  c  om
    if (options == null) {
        return outOfBandManagementConfig;
    }
    for (OutOfBandManagement.Option option : options.keySet()) {
        final String value = options.get(option);
        if (Strings.isNullOrEmpty(value)) {
            continue;
        }
        switch (option) {
        case DRIVER:
            outOfBandManagementConfig.setDriver(value);
            break;
        case ADDRESS:
            outOfBandManagementConfig.setAddress(value);
            break;
        case PORT:
            outOfBandManagementConfig.setPort(Integer.parseInt(value));
            break;
        case USERNAME:
            outOfBandManagementConfig.setUsername(value);
            break;
        case PASSWORD:
            outOfBandManagementConfig.setPassword(value);
            break;
        }
    }
    return outOfBandManagementConfig;
}

From source file:com.brq.wallet.activity.settings.SettingsActivity.java

@SuppressWarnings("deprecation")
@Override/*from w w  w  .ja  v  a2 s. c o m*/
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);
    _mbwManager = MbwManager.getInstance(SettingsActivity.this.getApplication());
    _ltManager = _mbwManager.getLocalTraderManager();
    // Bitcoin Denomination
    _bitcoinDenomination = (ListPreference) findPreference("bitcoin_denomination");
    _bitcoinDenomination.setTitle(bitcoinDenominationTitle());
    _bitcoinDenomination.setDefaultValue(_mbwManager.getBitcoinDenomination().toString());
    _bitcoinDenomination.setValue(_mbwManager.getBitcoinDenomination().toString());
    CharSequence[] denominations = new CharSequence[] { Denomination.BTC.toString(),
            Denomination.mBTC.toString(), Denomination.uBTC.toString(), Denomination.BITS.toString() };
    _bitcoinDenomination.setEntries(denominations);
    _bitcoinDenomination.setEntryValues(denominations);
    _bitcoinDenomination.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference preference, Object newValue) {
            _mbwManager.setBitcoinDenomination(Denomination.fromString(newValue.toString()));
            _bitcoinDenomination.setTitle(bitcoinDenominationTitle());
            return true;
        }
    });

    // Miner Fee
    _minerFee = (ListPreference) findPreference("miner_fee");
    _minerFee.setTitle(getMinerFeeTitle());
    _minerFee.setSummary(getMinerFeeSummary());
    _minerFee.setValue(_mbwManager.getMinerFee().toString());
    CharSequence[] minerFees = new CharSequence[] { MinerFee.LOWPRIO.toString(), MinerFee.ECONOMIC.toString(),
            MinerFee.NORMAL.toString(), MinerFee.PRIORITY.toString() };
    CharSequence[] minerFeeNames = new CharSequence[] { getString(R.string.miner_fee_lowprio_name),
            getString(R.string.miner_fee_economic_name), getString(R.string.miner_fee_normal_name),
            getString(R.string.miner_fee_priority_name) };
    _minerFee.setEntries(minerFeeNames);
    _minerFee.setEntryValues(minerFees);
    _minerFee.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference preference, Object newValue) {
            _mbwManager.setMinerFee(MinerFee.fromString(newValue.toString()));
            _minerFee.setTitle(getMinerFeeTitle());
            _minerFee.setSummary(getMinerFeeSummary());
            String description = _mbwManager.getMinerFee().getMinerFeeDescription(SettingsActivity.this);
            Utils.showSimpleMessageDialog(SettingsActivity.this, description);
            return true;
        }
    });

    //Block Explorer
    _blockExplorer = (ListPreference) findPreference("block_explorer");
    _blockExplorer.setTitle(getBlockExplorerTitle());
    _blockExplorer.setSummary(getBlockExplorerSummary());
    _blockExplorer.setValue(_mbwManager._blockExplorerManager.getBlockExplorer().getIdentifier());
    CharSequence[] blockExplorerNames = _mbwManager._blockExplorerManager
            .getBlockExplorerNames(_mbwManager._blockExplorerManager.getAllBlockExplorer());
    CharSequence[] blockExplorerValues = _mbwManager._blockExplorerManager.getBlockExplorerIds();
    _blockExplorer.setEntries(blockExplorerNames);
    _blockExplorer.setEntryValues(blockExplorerValues);
    _blockExplorer.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        public boolean onPreferenceChange(Preference preference, Object newValue) {
            _mbwManager.setBlockExplorer(
                    _mbwManager._blockExplorerManager.getBlockExplorerById(newValue.toString()));
            _blockExplorer.setTitle(getBlockExplorerTitle());
            _blockExplorer.setSummary(getBlockExplorerSummary());
            return true;
        }
    });

    //localcurrency
    _localCurrency = findPreference("local_currency");
    _localCurrency.setOnPreferenceClickListener(localCurrencyClickListener);
    _localCurrency.setTitle(localCurrencyTitle());

    // Exchange Source
    _exchangeSource = (ListPreference) findPreference("exchange_source");
    ExchangeRateManager exchangeManager = _mbwManager.getExchangeRateManager();
    List<String> exchangeSourceNamesList = exchangeManager.getExchangeSourceNames();
    CharSequence[] exchangeNames = exchangeSourceNamesList.toArray(new String[exchangeSourceNamesList.size()]);
    _exchangeSource.setEntries(exchangeNames);
    if (exchangeNames.length == 0) {
        _exchangeSource.setEnabled(false);
    } else {
        String currentName = exchangeManager.getCurrentExchangeSourceName();
        if (currentName == null) {
            currentName = "";
        }
        _exchangeSource.setEntries(exchangeNames);
        _exchangeSource.setEntryValues(exchangeNames);
        _exchangeSource.setDefaultValue(currentName);
        _exchangeSource.setValue(currentName);
    }
    _exchangeSource.setTitle(exchangeSourceTitle());
    _exchangeSource.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference preference, Object newValue) {
            _mbwManager.getExchangeRateManager().setCurrentExchangeSourceName(newValue.toString());
            _exchangeSource.setTitle(exchangeSourceTitle());
            return true;
        }
    });

    ListPreference language = (ListPreference) findPreference(Constants.LANGUAGE_SETTING);
    language.setTitle(getLanguageSettingTitle());
    language.setDefaultValue(Locale.getDefault().getLanguage());
    language.setSummary(_mbwManager.getLanguage());
    language.setValue(_mbwManager.getLanguage());

    ImmutableMap<String, String> languageLookup = loadLanguageLookups();
    language.setSummary(languageLookup.get(_mbwManager.getLanguage()));

    language.setEntries(R.array.languages_desc);
    language.setEntryValues(R.array.languages);
    language.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
        @Override
        public boolean onPreferenceChange(Preference preference, Object newValue) {
            String lang = newValue.toString();
            _mbwManager.setLanguage(lang);
            WalletApplication app = (WalletApplication) getApplication();
            app.applyLanguageChange(lang);

            restart();

            return true;
        }
    });

    // Set PIN
    Preference setPin = Preconditions.checkNotNull(findPreference("setPin"));
    setPin.setOnPreferenceClickListener(setPinClickListener);

    // Clear PIN
    updateClearPin();

    // PIN required on startup
    CheckBoxPreference setPinRequiredStartup = (CheckBoxPreference) Preconditions
            .checkNotNull(findPreference("requirePinOnStartup"));
    setPinRequiredStartup.setOnPreferenceChangeListener(setPinOnStartupClickListener);
    setPinRequiredStartup.setChecked(_mbwManager.getPinRequiredOnStartup());

    // Legacy backup function
    Preference legacyBackup = Preconditions.checkNotNull(findPreference("legacyBackup"));
    legacyBackup.setOnPreferenceClickListener(legacyBackupClickListener);

    // Legacy backup function
    Preference legacyBackupVerify = Preconditions.checkNotNull(findPreference("legacyBackupVerify"));
    legacyBackupVerify.setOnPreferenceClickListener(legacyBackupVerifyClickListener);

    // Local Trader
    CheckBoxPreference ltDisable = (CheckBoxPreference) findPreference("ltDisable");
    ltDisable.setChecked(_ltManager.isLocalTraderDisabled());
    ltDisable.setOnPreferenceClickListener(ltDisableLocalTraderClickListener);

    _ltNotificationSound = (CheckBoxPreference) findPreference("ltNotificationSound");
    _ltNotificationSound.setChecked(_ltManager.getPlaySoundOnTradeNotification());
    _ltNotificationSound.setOnPreferenceClickListener(ltNotificationSoundClickListener);

    _ltMilesKilometers = (CheckBoxPreference) findPreference("ltMilesKilometers");
    _ltMilesKilometers.setChecked(_ltManager.useMiles());
    _ltMilesKilometers.setOnPreferenceClickListener(ltMilesKilometersClickListener);

    // show bip44 path
    CheckBoxPreference showBip44Path = (CheckBoxPreference) findPreference("showBip44Path");
    showBip44Path.setChecked(_mbwManager.getMetadataStorage().getShowBip44Path());
    showBip44Path.setOnPreferenceClickListener(showBip44PathClickListener);

    // Socks Proxy
    final ListPreference useTor = Preconditions.checkNotNull((ListPreference) findPreference("useTor"));
    useTor.setTitle(getUseTorTitle());

    useTor.setEntries(new String[] { getString(R.string.use_https), getString(R.string.use_external_tor),
            //            getString(R.string.both),
    });

    useTor.setEntryValues(new String[] { ServerEndpointType.Types.ONLY_HTTPS.toString(),
            ServerEndpointType.Types.ONLY_TOR.toString(),
            //      ServerEndpointType.Types.HTTPS_AND_TOR.toString(),
    });

    useTor.setValue(_mbwManager.getTorMode().toString());

    useTor.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
        @Override
        public boolean onPreferenceChange(Preference preference, Object newValue) {
            if (newValue.equals(ServerEndpointType.Types.ONLY_TOR.toString())) {
                OrbotHelper obh = new OrbotHelper(SettingsActivity.this);
                if (!obh.isOrbotInstalled()) {
                    obh.promptToInstall(SettingsActivity.this);
                }
            }
            _mbwManager.setTorMode(ServerEndpointType.Types.valueOf((String) newValue));
            useTor.setTitle(getUseTorTitle());
            return true;
        }
    });

    CheckBoxPreference ledgerDisableTee = (CheckBoxPreference) findPreference("ledgerDisableTee");
    Preference ledgerSetUnpluggedAID = findPreference("ledgerUnpluggedAID");

    boolean isTeeAvailable = LedgerTransportTEEProxyFactory.isServiceAvailable(this);
    if (isTeeAvailable) {
        ledgerDisableTee.setChecked(_mbwManager.getLedgerManager().getDisableTEE());
        ledgerDisableTee.setOnPreferenceClickListener(onClickLedgerNotificationDisableTee);
    } else {
        PreferenceCategory ledger = (PreferenceCategory) findPreference("ledger");
        ledger.removePreference(ledgerDisableTee);
    }

    ledgerSetUnpluggedAID.setOnPreferenceClickListener(onClickLedgerSetUnpluggedAID);

    applyLocalTraderEnablement();

    // external Services
    CheckBoxPreference enableCashilaButton = (CheckBoxPreference) findPreference("enableCashilaButton");
    enableCashilaButton.setChecked(_mbwManager.getMetadataStorage().getCashilaIsEnabled());
    enableCashilaButton.setOnPreferenceClickListener(onClickCashilaEnable);

    CheckBoxPreference enableGlideraButton = (CheckBoxPreference) findPreference("enableGlideraButton");
    enableGlideraButton.setChecked(_mbwManager.getMetadataStorage().getGlideraIsEnabled());
    enableGlideraButton.setOnPreferenceClickListener(onClickGlideraEnable);
}

From source file:com.facebook.buck.android.AndroidBinaryBuildable.java

private void addDexFileDirectories(SourcePathResolver pathResolver, APKModule module,
        ImmutableMap<String, SourcePath> mapOfModuleToSecondaryDexSourcePaths,
        ImmutableSet.Builder<Path> dexFileDirectoriesBuilderForThisModule,
        ImmutableMap.Builder<Path, String> assetDirectoriesBuilderForThisModule) {
    File[] dexFiles = filesystem//from  w  w  w .ja  va 2s  . co  m
            .getPathForRelativePath(
                    pathResolver.getRelativePath(mapOfModuleToSecondaryDexSourcePaths.get(module.getName())))
            .toFile().listFiles();
    if (dexFiles == null) {
        return;
    }
    for (File dexFile : dexFiles) {
        if (dexFile.getName().endsWith(".dex")) {
            dexFileDirectoriesBuilderForThisModule.add(filesystem.getPathForRelativePath(dexFile.toPath()));
        } else {
            Path current = pathResolver
                    .getRelativePath(mapOfModuleToSecondaryDexSourcePaths.get(module.getName()));
            String prefix = current.getParent().getParent().relativize(current).toString();
            assetDirectoriesBuilderForThisModule.put(current, prefix);
        }
    }
}

From source file:com.facebook.buck.skylark.parser.SkylarkProjectBuildFileParser.java

private ImplicitlyLoadedExtension loadImplicitExtension(String basePath, Label containingLabel)
        throws IOException, InterruptedException {
    Optional<ImplicitInclude> implicitInclude = packageImplicitIncludeFinder
            .findIncludeForBuildFile(Paths.get(basePath));
    if (!implicitInclude.isPresent()) {
        return ImplicitlyLoadedExtension.empty();
    }/*from w w  w. ja v  a2s.  c o m*/

    // Only export requested symbols, and ensure that all requsted symbols are present.
    ExtensionData data = loadExtension(LoadImport.of(containingLabel, implicitInclude.get().getLoadPath()));
    ImmutableMap<String, Object> symbols = data.getExtension().getBindings();
    ImmutableMap<String, String> expectedSymbols = implicitInclude.get().getSymbols();
    Builder<String, Object> loaded = ImmutableMap.builderWithExpectedSize(expectedSymbols.size());
    for (Entry<String, String> kvp : expectedSymbols.entrySet()) {
        Object symbol = symbols.get(kvp.getValue());
        if (symbol == null) {
            throw BuildFileParseException.createForUnknownParseError(
                    String.format("Could not find symbol '%s' in implicitly loaded extension '%s'",
                            kvp.getValue(), implicitInclude.get().getLoadPath().getImportString()));
        }
        loaded.put(kvp.getKey(), symbol);
    }
    return ImplicitlyLoadedExtension.of(data, loaded.build());
}