Example usage for com.google.common.collect HashBasedTable create

List of usage examples for com.google.common.collect HashBasedTable create

Introduction

In this page you can find the example usage for com.google.common.collect HashBasedTable create.

Prototype

public static <R, C, V> HashBasedTable<R, C, V> create(int expectedRows, int expectedCellsPerRow) 

Source Link

Document

Creates an empty HashBasedTable with the specified map sizes.

Usage

From source file:org.broad.igv.tools.AbstractConsensusCalculator.java

protected static Table<Character, Character, Character> getDegeneracyTable() {
    if (degeneracyTable == null) {
        degeneracyTable = HashBasedTable.create(5, 5);
        Map<String, String> iupacMap = ParsingUtils.loadIUPACMap();
        for (String s : iupacMap.values()) {
            s = s.replace("[", "").replace("]", "").toLowerCase();
            //System.out.println(s);
            String[] tokens = s.split(",");
            if (tokens.length != 3)
                continue;
            char a = tokens[1].trim().charAt(0);
            char b = tokens[2].trim().charAt(0);
            char c = tokens[0].trim().charAt(0);
            degeneracyTable.put(a, b, c);
            degeneracyTable.put(b, a, c);
        }//from   ww  w . j  a  v  a  2s  .  c  om
    }
    return degeneracyTable;
}

From source file:net.librec.recommender.ext.AssociationRuleRecommender.java

/**
 * setup/*  w  ww  . j  ava 2s . c  o m*/
 *
 * @throws LibrecException if error occurs
 */
@Override
protected void setup() throws LibrecException {
    super.setup();
    cacheSpec = conf.get("guava.cache.spec", "maximumSize=200,expireAfterAccess=2m");

    associationTable = HashBasedTable.create(numItems, numItems);
    userCache = trainMatrix.rowCache(cacheSpec);
}

From source file:org.trnltk.morphology.morphotactics.PrecachingSuffixFormSequenceApplier.java

private void initialize() {
    final Collection<Suffix> allSuffixes = suffixGraph.getAllSuffixes();
    final Set<Set<PhoneticAttribute>> modifierAttributesPowerSet = Sets.powerSet(MODIFIER_ATTRIBUTES);

    int expectedRowCount = allSuffixes.size();
    int expectedColumnCount = modifierAttributesPowerSet.size();
    this.suffixFormSequenceTable = HashBasedTable.create(expectedRowCount, expectedColumnCount);

    for (Suffix suffix : allSuffixes) {
        final Set<SuffixForm> suffixForms = suffix.getSuffixForms();
        for (SuffixForm suffixForm : suffixForms) {
            final SuffixFormSequence suffixFormSequence = suffixForm.getForm();
            for (Set<PhoneticAttribute> phoneticAttributes : modifierAttributesPowerSet) {
                final ImmutableSet<PhoneticAttribute> phoneticAttributeImmutableSet = Sets
                        .immutableEnumSet(phoneticAttributes);
                final String appliedSuffixFormStr = this.delegate.apply(suffixFormSequence,
                        phoneticAttributeImmutableSet);
                this.suffixFormSequenceTable.put(suffixFormSequence, phoneticAttributeImmutableSet,
                        appliedSuffixFormStr);
            }/*from  w ww  .  j  a v a 2  s.c  o m*/
        }
    }

}

From source file:com.torodb.core.transaction.metainf.ImmutableMetaDocPart.java

public ImmutableMetaDocPart(TableRef tableRef, String dbName,
        @DoNotChange Map<String, ImmutableMetaField> columns,
        @DoNotChange EnumMap<FieldType, ImmutableMetaScalar> scalars,
        @DoNotChange Map<String, ImmutableMetaIdentifiedDocPartIndex> indexes) {
    this.tableRef = tableRef;
    this.identifier = dbName;
    this.fieldsByIdentifier = columns;
    this.fieldsByNameAndType = HashBasedTable.create(columns.size(), 10);
    columns.values().forEach((column) -> fieldsByNameAndType.put(column.getName(), column.getType(), column));
    this.scalars = scalars;
    this.indexesByIdentifier = indexes;
}

From source file:org.sonar.server.measure.ws.SearchHistoryResponseFactory.java

private UnaryOperator<SearchHistoryResponse.Builder> addMeasures() {
    Map<Integer, MetricDto> metricsById = result.getMetrics().stream()
            .collect(MoreCollectors.uniqueIndex(MetricDto::getId));
    Map<String, SnapshotDto> analysesByUuid = result.getAnalyses().stream()
            .collect(MoreCollectors.uniqueIndex(SnapshotDto::getUuid));
    Table<MetricDto, SnapshotDto, MeasureDto> measuresByMetricByAnalysis = HashBasedTable
            .create(result.getMetrics().size(), result.getAnalyses().size());
    result.getMeasures().forEach(m -> measuresByMetricByAnalysis.put(metricsById.get(m.getMetricId()),
            analysesByUuid.get(m.getAnalysisUuid()), m));

    return response -> {
        result.getMetrics().stream().peek(metric -> measure.clear()).map(addMetric())
                .map(metric -> addValues(measuresByMetricByAnalysis.row(metric)).apply(metric))
                .forEach(metric -> response.addMeasures(measure));

        return response;
    };/*from   w  w w. ja va  2 s . c  o  m*/
}

From source file:com.lyndir.omicron.cli.view.MapView.java

@Override
protected void drawForeground(final Screen screen) {
    super.drawForeground(screen);

    Optional<IGameController> gameController = OmicronCLI.get().getGameController();
    if (!gameController.isPresent())
        return;//from ww w.  ja  va2 s  . co m

    Optional<IPlayer> localPlayerOptional = OmicronCLI.get().getLocalPlayer();
    if (!localPlayerOptional.isPresent())
        return;
    IPlayer localPlayer = localPlayerOptional.get();

    // Create an empty grid.
    Size levelSize = gameController.get().getGame().getLevel(getLevelType()).getSize();
    Table<Integer, Integer, ITile> grid = HashBasedTable.create(levelSize.getHeight(), levelSize.getWidth());

    // Iterate observable tiles and populate the grid.
    localPlayer.observableTiles().forEach(tile -> {
        Vec2 coordinate = positionToMapCoordinate(tile.getPosition());
        grid.put(coordinate.getY(), coordinate.getX(), tile);
    });

    // Draw grid in view.
    Box contentBox = getContentBoxOnScreen();
    for (int screenX = contentBox.getLeft(); screenX <= contentBox.getRight(); ++screenX)
        for (int screenY = contentBox.getTop(); screenY <= contentBox.getBottom(); ++screenY) {
            int tileY = screenY - contentBox.getTop() + getOffset().getY();
            int tileX = screenX - contentBox.getLeft() + getOffset().getX();
            if (!levelSize.isInBounds(Vec2.create(tileX, tileY)))
                continue;

            ITile tile = grid.get(tileY, tileX);
            Maybe<? extends IGameObject> contents;
            Terminal.Color bgColor = getBackgroundColor();
            if (tile == null)
                contents = Maybe.empty();
            else {
                contents = tile.getContents();
                bgColor = levelTypeColors.get(tile.getLevel().getType());

                for (final ResourceType resourceType : ResourceType.values()) {
                    Maybe<Integer> resourceQuantity = tile.getResourceQuantity(resourceType);
                    if (resourceQuantity.presence() == Maybe.Presence.PRESENT)
                        bgColor = resourceTypeColors.get(resourceType);
                }
            }

            screen.putString(screenX + (screenY % 2 == 0 ? 0 : 1), screenY,
                    contents.presence() == Maybe.Presence.PRESENT
                            ? contents.get().getType().getTypeName().substring(0, 1)
                            : " ",
                    getMapColor(), bgColor, ScreenCharacterStyle.Bold);
            // Draw off-screen warning labels.
        }

    Inset offScreen = new Inset(Math.max(0, getOffset().getY()),
            Math.max(0, levelSize.getWidth() - contentBox.getSize().getWidth() - getOffset().getX() + 1),
            Math.max(0, levelSize.getHeight() - contentBox.getSize().getHeight() - getOffset().getY() - 1),
            Math.max(0, getOffset().getX()));
    int centerX = contentBox.getLeft() + (levelSize.getWidth() - offScreen.getHorizontal()) / 2
            - getOffset().getX() + offScreen.getLeft();
    int centerY = contentBox.getTop() + (levelSize.getHeight() - offScreen.getVertical()) / 2
            - getOffset().getY() + offScreen.getTop();
    centerX = Math.min(contentBox.getRight() - 3, Math.max(contentBox.getLeft(), centerX));
    centerY = Math.min(contentBox.getBottom() - 1, Math.max(contentBox.getTop() + 1, centerY));
    if (offScreen.getTop() > 0)
        screen.putString(centerX, contentBox.getTop(), //
                String.format("%+d", offScreen.getTop()), getInfoTextColor(), getInfoBackgroundColor());
    if (offScreen.getRight() > 0) {
        String label = String.format("%+d", offScreen.getRight());
        screen.putString(contentBox.getRight() - label.length(), centerY, //
                label, getInfoTextColor(), getInfoBackgroundColor());
    }
    if (offScreen.getBottom() > 0)
        screen.putString(centerX, contentBox.getBottom(), //
                String.format("%+d", offScreen.getBottom()), getInfoTextColor(), getInfoBackgroundColor());
    if (offScreen.getLeft() > 0)
        screen.putString(contentBox.getLeft(), centerY, //
                String.format("%+d", offScreen.getLeft()), getInfoTextColor(), getInfoBackgroundColor());
}

From source file:org.sonar.server.measure.ws.SearchHistoryResult.java

/**
 * Conditions for best value measure://from www.  ja va  2s  .c  o m
 * <ul>
 * <li>component is a production file or test file</li>
 * <li>metric is optimized for best value</li>
 * </ul>
 */
private List<MeasureDto> computeBestValues(List<MeasureDto> measures) {
    if (!isEligibleForBestValue().test(component)) {
        return emptyList();
    }

    requireNonNull(metrics);
    requireNonNull(analyses);

    Table<Integer, String, MeasureDto> measuresByMetricIdAndAnalysisUuid = HashBasedTable.create(metrics.size(),
            analyses.size());
    measures.forEach(measure -> measuresByMetricIdAndAnalysisUuid.put(measure.getMetricId(),
            measure.getAnalysisUuid(), measure));
    List<MeasureDto> bestValues = new ArrayList<>();
    metrics.stream().filter(isOptimizedForBestValue()).forEach(metric -> analyses.stream()
            .filter(analysis -> !measuresByMetricIdAndAnalysisUuid.contains(metric.getId(), analysis.getUuid()))
            .map(analysis -> toBestValue(metric, analysis)).forEach(bestValues::add));

    return bestValues;
}

From source file:au.com.permeance.liferay.portlet.controller.SamplePortletController.java

@RenderMapping
public String handleViewPage(final RenderRequest request, final ModelMap model,
        @RequestParam(defaultValue = "-1") final String recordSetIdParam,
        @RequestParam(required = false) final String columnName) throws Exception {
    log.info("In View");

    long recordSetId = Long.parseLong(recordSetIdParam);
    DDLRecordSet recordSet = lookupTable(request);
    if (recordSetId == -1) {
        if (recordSet != null) {
            recordSetId = recordSet.getRecordSetId();
        }/*from w  w  w  .jav a 2 s  .  c  o m*/
    }

    if (recordSetId > 0) {

        List<DDLRecord> records = getRecords(request, recordSet, columnName);
        Table<Long, String, String> recordTable = HashBasedTable.create(records.size(), 7);

        long rowIdCounter = 0;
        for (DDLRecord record : records) {
            Fields fields = record.getFields();
            long rowId = rowIdCounter++;
            for (com.liferay.portlet.dynamicdatamapping.storage.Field field : fields) {
                String name = field.getName();
                String value = field.getValue(Locale.US).toString();

                recordTable.put(rowId, name, value);

            }
        }
        model.addAttribute("recordTable", recordTable);
    }

    model.addAttribute("recordSetId", recordSetId);

    // Limit the number of rows to display.
    model.addAttribute("displayRows", Arrays.asList(0L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L));

    return "view";
}

From source file:mtsar.processors.answer.KOSAggregator.java

private Map<Integer, Double> converge(Table<Integer, Integer, Short> graph, int kMax) {
    final RealDistribution distribution = new NormalDistribution(1, 1);

    Table<Integer, Integer, Double> ys = HashBasedTable.create(graph.rowKeySet().size(),
            graph.columnKeySet().size());

    for (final Table.Cell<Integer, Integer, Short> cell : graph.cellSet()) {
        ys.put(cell.getRowKey(), cell.getColumnKey(), distribution.sample());
    }/*from  ww w .j a v a  2  s  .  c o  m*/

    for (int k = 1; k <= kMax; k++) {
        final Table<Integer, Integer, Double> xs = tasksUpdate(graph, ys);
        if (k < kMax)
            ys = workersUpdate(graph, xs);
    }

    final Map<Integer, Double> estimations = new HashMap<>();

    for (final Integer taskId : graph.rowKeySet()) {
        double sumProduct = 0.0;

        final Map<Integer, Double> workers = ys.row(taskId);
        for (final Map.Entry<Integer, Double> worker : workers.entrySet()) {
            sumProduct += graph.get(taskId, worker.getKey()) * worker.getValue();
        }

        estimations.put(taskId, sumProduct);
    }

    return estimations;
}

From source file:de.csenk.gwt.statemachine.shared.impl.StateMachineBuilderImpl.java

/**
 * @param states/* www.ja  v a  2  s  .c  o  m*/
 * @param events
 */
public StateMachineBuilderImpl(S[] states, E[] events) {
    this.states = states;
    this.events = events;

    this.transitions = HashBasedTable.create(this.states.length, this.events.length);
}