@Override public float getFractionLoaded() { int expected = 0; try (AutoLock al = expectedUserIDsLock.autoReadLock()) { expected += expectedUserIDs.size(); } try (AutoLock al = expectedItemIDsLock.autoReadLock()) { expected += expectedItemIDs.size(); } if (expected == 0) { return 1.0f; } float loaded = (float) getNumUsers() + getNumItems(); return loaded / (loaded + expected); }
@Override public float getFractionLoaded() { int expected = 0; try (AutoLock al = expectedUserIDsLock.autoReadLock()) { expected += expectedUserIDs.size(); } try (AutoLock al = expectedItemIDsLock.autoReadLock()) { expected += expectedItemIDs.size(); } if (expected == 0) { return 1.0f; } float loaded = (float) X.size() + Y.size(); return loaded / (loaded + expected); }
/** * @return mapping of user IDs to count of items the user has interacted with */ public Map<String,Integer> getUserCounts() { Map<String,Integer> counts; try (AutoLock al = knownItemsLock.autoReadLock()) { counts = new HashMap<>(knownItems.size()); knownItems.forEach((userID, ids) -> { int numItems; synchronized (ids) { numItems = ids.size(); } counts.put(userID, numItems); }); } return counts; }
inExpectedOnlySet.removeAll(actualSet); int numberDifferences = inExpectedOnlySet.size(); String message = setName + ": " + numberDifferences + " elements different.";
@Override public <T> MutableSet<T> fromStream(Stream<? extends T> stream) { MutableSet<T> set = stream.collect(Collectors2.toSet()); T[] itemArray; switch (set.size()) { case 0: return new EmptySet<>(); case 1: itemArray = (T[]) set.toArray(); return new SingletonSet<>(itemArray[0]); case 2: itemArray = (T[]) set.toArray(); return new DoubletonSet<>(itemArray[0], itemArray[1]); case 3: itemArray = (T[]) set.toArray(); return new TripletonSet<>(itemArray[0], itemArray[1], itemArray[2]); case 4: itemArray = (T[]) set.toArray(); return new QuadrupletonSet<>(itemArray[0], itemArray[1], itemArray[2], itemArray[3]); default: return set; } } }
@Override public <T> MutableSet<T> fromStream(Stream<? extends T> stream) { MutableSet<T> set = stream.collect(Collectors2.toSet()); T[] itemArray; switch (set.size()) { case 0: return new EmptySet<>(); case 1: itemArray = (T[]) set.toArray(); return new SingletonSet<>(itemArray[0]); case 2: itemArray = (T[]) set.toArray(); return new DoubletonSet<>(itemArray[0], itemArray[1]); case 3: itemArray = (T[]) set.toArray(); return new TripletonSet<>(itemArray[0], itemArray[1], itemArray[2]); case 4: itemArray = (T[]) set.toArray(); return new QuadrupletonSet<>(itemArray[0], itemArray[1], itemArray[2], itemArray[3]); default: return set; } } }
@Override public String toString() { return "FileComparison{" + "changeType=" + this.changeType + ", name='" + this.name + '\'' + ", distinctValuesCount=" + this.distinctValues.size() + '}'; } }
@Override public String toString() { return "FileComparison{" + "changeType=" + this.changeType + ", name='" + this.name + '\'' + ", distinctValuesCount=" + this.distinctValues.size() + '}'; } }
private void logCardCountPerPlayer() { this.cardsPerPlayer.forEachKeyMultiValues((player, cardsPerPlayer) -> LOGGER.info("Player:{} has {} cards", player, ((MutableSet<Card>) cardsPerPlayer).size())); }
@Override public float getFractionLoaded() { int expected = 0; try (AutoLock al = expectedUserIDsLock.autoReadLock()) { expected += expectedUserIDs.size(); } try (AutoLock al = expectedItemIDsLock.autoReadLock()) { expected += expectedItemIDs.size(); } if (expected == 0) { return 1.0f; } float loaded = (float) X.size() + Y.size(); return loaded / (loaded + expected); }
/** * Returns true/false if all the schemas in the environment either need rollback (true) or don't (false). * * If some do and some don't, an exception is thrown. */ @Override public boolean determineRollback(final String productVersion, final ImmutableSet<String> schemas, final DeployExecutionDao deployExecutionDao) { MutableMap<String, Boolean> rollbackFlags = schemas.toMap( Functions.<String>getPassThru(), new Function<String, Boolean>() { @Override public Boolean valueOf(String schema) { LOG.info("Checking rollback status on Product Version {} and Schema {}", productVersion, schema); return DefaultRollbackDetector.this.determineRollbackForSchema(productVersion, deployExecutionDao.getDeployExecutions(schema)); } } ); MutableSet<Boolean> values = rollbackFlags.valuesView().toSet(); if (values.size() > 1) { MutableSetMultimap<Boolean, String> schemasByRollbackFlag = rollbackFlags.flip(); MutableSet<String> rollbackSchemas = schemasByRollbackFlag.get(Boolean.TRUE); MutableSet<String> nonrollbackSchemas = schemasByRollbackFlag.get(Boolean.FALSE); throw new IllegalArgumentException("The following schemas were calculated for rollback [" + rollbackSchemas + "], though the rest were not [" + nonrollbackSchemas + "]; cannot proceed in this mixed mode"); } return values.iterator().next().booleanValue(); }
/** * Returns true/false if all the schemas in the environment either need rollback (true) or don't (false). * * If some do and some don't, an exception is thrown. */ @Override public boolean determineRollback(final String productVersion, final ImmutableSet<String> schemas, final DeployExecutionDao deployExecutionDao) { MutableMap<String, Boolean> rollbackFlags = schemas.toMap( Functions.<String>getPassThru(), new Function<String, Boolean>() { @Override public Boolean valueOf(String schema) { LOG.info("Checking rollback status on Product Version {} and Schema {}", productVersion, schema); return DefaultRollbackDetector.this.determineRollbackForSchema(productVersion, deployExecutionDao.getDeployExecutions(schema)); } } ); MutableSet<Boolean> values = rollbackFlags.valuesView().toSet(); if (values.size() > 1) { MutableSetMultimap<Boolean, String> schemasByRollbackFlag = rollbackFlags.flip(); MutableSet<String> rollbackSchemas = schemasByRollbackFlag.get(Boolean.TRUE); MutableSet<String> nonrollbackSchemas = schemasByRollbackFlag.get(Boolean.FALSE); throw new IllegalArgumentException("The following schemas were calculated for rollback [" + rollbackSchemas + "], though the rest were not [" + nonrollbackSchemas + "]; cannot proceed in this mixed mode"); } return values.iterator().next().booleanValue(); }
if (dbSchemas.size() == 1) { } else if (dbSchemas.size() > 1) { if (versionSchemas.size() == 1) { if (idSchemas.size() == 1) { schemaToSet = idSchemas.getFirst(); } else if (idSchemas.size() >= 1) { LOG.warn("Not expecting multiple schemas on ID {} to be defined: {} ", id, idSchemas); schemaToSet = "MULTISCHEMA";
if (dbSchemas.size() == 1) { } else if (dbSchemas.size() > 1) { if (versionSchemas.size() == 1) { if (idSchemas.size() == 1) { schemaToSet = idSchemas.getFirst(); } else if (idSchemas.size() >= 1) { LOG.warn("Not expecting multiple schemas on ID {} to be defined: {} ", id, idSchemas); schemaToSet = "MULTISCHEMA";
inExpectedOnlySet.removeAll(actualSet); int numberDifferences = inExpectedOnlySet.size(); String message = setName + ": " + numberDifferences + " elements different.";
@Override public DaColumn valueOf(RichIterable<DaColumn> columns) { DaColumn representative = columns.getFirst(); MutableSet<DaColumnDataType> columnDataTypes = columns.collect(DaColumn.TO_COLUMN_DATA_TYPE).toSet(); if (columnDataTypes.size() > 1) { System.out.println("Found multiple data types for column " + representative.getName() + ": " + columnDataTypes.makeString(", ")); return representative; } Integer decimalDigits = extractIntValue(columns, DaColumn.TO_DECIMAL_DIGITS); Integer size = extractIntValue(columns, DaColumn.TO_SIZE); // Integer width = extractIntValue(columns, DaColumn.TO_WIDTH); boolean nullable = extractBooleanValue(columns, DaColumn.TO_NULLABLE, true); String defaultValue = extractStringValue(columns, DaColumn.TO_DEFAULT_VALUE); DaColumnImpl newcol = new DaColumnImpl(representative.getParent(), representative.getName()); newcol.setColumnDataType(columnDataTypes.getFirst()); newcol.setSize(size); newcol.setDecimalDigits(decimalDigits); newcol.setNullable(nullable); newcol.setDefaultValue(defaultValue); return newcol; }
@Override public DaColumn valueOf(RichIterable<DaColumn> columns) { DaColumn representative = columns.getFirst(); MutableSet<DaColumnDataType> columnDataTypes = columns.collect(DaColumn.TO_COLUMN_DATA_TYPE).toSet(); if (columnDataTypes.size() > 1) { System.out.println("Found multiple data types for column " + representative.getName() + ": " + columnDataTypes.makeString(", ")); return representative; } Integer decimalDigits = extractIntValue(columns, DaColumn.TO_DECIMAL_DIGITS); Integer size = extractIntValue(columns, DaColumn.TO_SIZE); // Integer width = extractIntValue(columns, DaColumn.TO_WIDTH); boolean nullable = extractBooleanValue(columns, DaColumn.TO_NULLABLE, true); String defaultValue = extractStringValue(columns, DaColumn.TO_DEFAULT_VALUE); DaColumnImpl newcol = new DaColumnImpl(representative.getParent(), representative.getName()); newcol.setColumnDataType(columnDataTypes.getFirst()); newcol.setSize(size); newcol.setDecimalDigits(decimalDigits); newcol.setNullable(nullable); newcol.setDefaultValue(defaultValue); return newcol; }