@Override public long findOrInsert(Criteria criteria, String json) throws DuplicateEntryException { return execute(() -> { return client.findOrInsertCriteriaJson( Language.translateToThriftCriteria(criteria), json, creds, transaction, environment); }); }
/** * Return a {@link Parser} for the {@code criteria}. * * @param criteria * @return a {@link Parser} */ public static Parser create(TCriteria criteria) { return create( Language.translateFromThriftCriteria(criteria).getCclString()); }
/** * Translate the {@code tcriteria} to its Java analog. * * @param tcriteria * @return the analogous Java {@link Criteria} */ public static Criteria translateFromThriftCriteria(TCriteria tcriteria) { Criteria criteria = new Criteria(); for (TSymbol tsymbol : tcriteria.getSymbols()) { criteria.add(translateFromThriftSymbol(tsymbol)); } return criteria; }
@Test public void testRoundTrip() { String value = "`bar`"; Criteria expected = Criteria.where().key("foo") .operator(Operator.EQUALS).value(value).build(); Criteria actual = Language.translateFromThriftCriteria( Language.translateToThriftCriteria(expected)); Assert.assertEquals(expected, actual); }
/** * Translate the {@code criteria} to its Thrift analog. * * @param criteria * @return the analogous TCriteria */ public static TCriteria translateToThriftCriteria(Criteria criteria) { List<TSymbol> symbols = Lists.newArrayList(); for (Symbol symbol : criteria.getSymbols()) { symbols.add(translateToThriftSymbol(symbol)); } return new TCriteria(symbols); }
@Override public Set<Long> find(Criteria criteria) { return execute(() -> { return client.findCriteria( Language.translateToThriftCriteria(criteria), creds, transaction, environment); }); }
/** * Return a {@link Parser} for the {@code criteria} that uses the provided * {@code data} for local resolution. * * @param criteria * @param data a dataset * @return a {@link Parser} */ public static Parser create(TCriteria criteria, Multimap<String, Object> data) { return create( Language.translateFromThriftCriteria(criteria).getCclString(), data); }
@SuppressWarnings("unchecked") @Override public <T> Map<Long, T> get(String key, Criteria criteria) { return execute(() -> { Map<Long, TObject> raw = client.getKeyCriteria(key, Language.translateToThriftCriteria(criteria), creds, transaction, environment); Map<Long, T> pretty = PrettyLinkedHashMap .newPrettyLinkedHashMap("Record", key); for (Entry<Long, TObject> entry : raw.entrySet()) { pretty.put(entry.getKey(), (T) Convert.thriftToJava(entry.getValue())); } return pretty; }); }
@Override public <T> Map<Long, Map<String, T>> get(Criteria criteria) { return execute(() -> { Map<Long, Map<String, TObject>> raw = client.getCriteria( Language.translateToThriftCriteria(criteria), creds, transaction, environment); Map<Long, Map<String, T>> pretty = PrettyLinkedTableMap .newPrettyLinkedTableMap("Record"); for (Entry<Long, Map<String, TObject>> entry : raw.entrySet()) { pretty.put(entry.getKey(), Transformers.transformMapValues(entry.getValue(), Conversions.<T> thriftToJavaCasted())); } return pretty; }); }
@Override public <T> Map<Long, Set<T>> select(String key, Criteria criteria) { return execute(() -> { Map<Long, Set<TObject>> raw = client.selectKeyCriteria(key, Language.translateToThriftCriteria(criteria), creds, transaction, environment); Map<Long, Set<T>> pretty = PrettyLinkedHashMap .newPrettyLinkedHashMap("Record", key); for (Entry<Long, Set<TObject>> entry : raw.entrySet()) { pretty.put(entry.getKey(), Transformers.transformSetLazily(entry.getValue(), Conversions.<T> thriftToJavaCasted())); } return pretty; }); }
@Override public <T> Map<Long, Map<String, T>> get(Collection<String> keys, Criteria criteria) { return execute(() -> { Map<Long, Map<String, TObject>> raw = client.getKeysCriteria( Collections.toList(keys), Language.translateToThriftCriteria(criteria), creds, transaction, environment); Map<Long, Map<String, T>> pretty = PrettyLinkedTableMap .newPrettyLinkedTableMap("Record"); for (Entry<Long, Map<String, TObject>> entry : raw.entrySet()) { pretty.put(entry.getKey(), Transformers.transformMapValues(entry.getValue(), Conversions.<T> thriftToJavaCasted())); } return pretty; }); }
@Override public <T> Map<Long, Map<String, Set<T>>> select(Criteria criteria) { return execute(() -> { Map<Long, Map<String, Set<TObject>>> raw = client.selectCriteria( Language.translateToThriftCriteria(criteria), creds, transaction, environment); Map<Long, Map<String, Set<T>>> pretty = PrettyLinkedTableMap .newPrettyLinkedTableMap("Record"); for (Entry<Long, Map<String, Set<TObject>>> entry : raw .entrySet()) { pretty.put(entry.getKey(), Transformers.transformMapSet(entry.getValue(), Conversions.<String> none(), Conversions.<T> thriftToJavaCasted())); } return pretty; }); }
@SuppressWarnings("unchecked") @Override public <T> Map<Long, T> get(String key, Criteria criteria, Timestamp timestamp) { return execute(() -> { Map<Long, TObject> raw; if(timestamp.isString()) { raw = client.getKeyCriteriaTimestr(key, Language.translateToThriftCriteria(criteria), timestamp.toString(), creds, transaction, environment); } else { raw = client.getKeyCriteriaTime(key, Language.translateToThriftCriteria(criteria), timestamp.getMicros(), creds, transaction, environment); } Map<Long, T> pretty = PrettyLinkedHashMap .newPrettyLinkedHashMap("Record", key); for (Entry<Long, TObject> entry : raw.entrySet()) { pretty.put(entry.getKey(), (T) Convert.thriftToJava(entry.getValue())); } return pretty; }); }
@Override public <T> Map<Long, Map<String, Set<T>>> navigate(Collection<String> keys, Criteria criteria) { return execute(() -> { Map<Long, Map<String, Set<TObject>>> raw = client .navigateKeysCriteria(Collections.toList(keys), Language.translateToThriftCriteria(criteria), creds, transaction, environment); return Thrift.transformRecordsKeysValues(raw); }); }
@Override public <T> Map<Long, Map<String, Set<T>>> select(Collection<String> keys, Criteria criteria) { return execute(() -> { Map<Long, Map<String, Set<TObject>>> raw = client .selectKeysCriteria(Collections.toList(keys), Language.translateToThriftCriteria(criteria), creds, transaction, environment); Map<Long, Map<String, Set<T>>> pretty = PrettyLinkedTableMap .newPrettyLinkedTableMap("Record"); for (Entry<Long, Map<String, Set<TObject>>> entry : raw .entrySet()) { pretty.put(entry.getKey(), Transformers.transformMapSet(entry.getValue(), Conversions.<String> none(), Conversions.<T> thriftToJavaCasted())); } return pretty; }); }
@Override public <T> Map<Long, Map<String, T>> get(Criteria criteria, Timestamp timestamp) { return execute(() -> { Map<Long, Map<String, TObject>> raw; if(timestamp.isString()) { raw = client.getCriteriaTimestr( Language.translateToThriftCriteria(criteria), timestamp.toString(), creds, transaction, environment); } else { raw = client.getCriteriaTime( Language.translateToThriftCriteria(criteria), timestamp.getMicros(), creds, transaction, environment); } Map<Long, Map<String, T>> pretty = PrettyLinkedTableMap .newPrettyLinkedTableMap("Record"); for (Entry<Long, Map<String, TObject>> entry : raw.entrySet()) { pretty.put(entry.getKey(), Transformers.transformMapValues(entry.getValue(), Conversions.<T> thriftToJavaCasted())); } return pretty; }); }
@Override public <T> Map<Long, Set<T>> select(String key, Criteria criteria, Timestamp timestamp) { return execute(() -> { Map<Long, Set<TObject>> raw; if(timestamp.isString()) { raw = client.selectKeyCriteriaTimestr(key, Language.translateToThriftCriteria(criteria), timestamp.toString(), creds, transaction, environment); } else { raw = client.selectKeyCriteriaTime(key, Language.translateToThriftCriteria(criteria), timestamp.getMicros(), creds, transaction, environment); } Map<Long, Set<T>> pretty = PrettyLinkedHashMap .newPrettyLinkedHashMap("Record", key); for (Entry<Long, Set<TObject>> entry : raw.entrySet()) { pretty.put(entry.getKey(), Transformers.transformSetLazily(entry.getValue(), Conversions.<T> thriftToJavaCasted())); } return pretty; }); }
@Override public <T> Map<Long, Map<String, Set<T>>> select(Criteria criteria, Timestamp timestamp) { return execute(() -> { Map<Long, Map<String, Set<TObject>>> raw; if(timestamp.isString()) { raw = client.selectCriteriaTimestr( Language.translateToThriftCriteria(criteria), timestamp.toString(), creds, transaction, environment); } else { raw = client.selectCriteriaTime( Language.translateToThriftCriteria(criteria), timestamp.getMicros(), creds, transaction, environment); } Map<Long, Map<String, Set<T>>> pretty = PrettyLinkedTableMap .newPrettyLinkedTableMap("Record"); for (Entry<Long, Map<String, Set<TObject>>> entry : raw .entrySet()) { pretty.put(entry.getKey(), Transformers.transformMapSet(entry.getValue(), Conversions.<String> none(), Conversions.<T> thriftToJavaCasted())); } return pretty; }); }
@Override public <T> Map<Long, Map<String, T>> get(Collection<String> keys, Criteria criteria, Timestamp timestamp) { return execute(() -> { Map<Long, Map<String, TObject>> raw; if(timestamp.isString()) { raw = client.getKeysCriteriaTimestr(Collections.toList(keys), Language.translateToThriftCriteria(criteria), timestamp.toString(), creds, transaction, environment); } else { raw = client.getKeysCriteriaTime(Collections.toList(keys), Language.translateToThriftCriteria(criteria), timestamp.getMicros(), creds, transaction, environment); } Map<Long, Map<String, T>> pretty = PrettyLinkedTableMap .newPrettyLinkedTableMap("Record"); for (Entry<Long, Map<String, TObject>> entry : raw.entrySet()) { pretty.put(entry.getKey(), Transformers.transformMapValues(entry.getValue(), Conversions.<T> thriftToJavaCasted())); } return pretty; }); }
@Override public <T> Map<Long, Map<String, Set<T>>> select(Collection<String> keys, Criteria criteria, Timestamp timestamp) { return execute(() -> { Map<Long, Map<String, Set<TObject>>> raw; if(timestamp.isString()) { raw = client.selectKeysCriteriaTimestr(Collections.toList(keys), Language.translateToThriftCriteria(criteria), timestamp.toString(), creds, transaction, environment); } else { raw = client.selectKeysCriteriaTime(Collections.toList(keys), Language.translateToThriftCriteria(criteria), timestamp.getMicros(), creds, transaction, environment); } Map<Long, Map<String, Set<T>>> pretty = PrettyLinkedTableMap .newPrettyLinkedTableMap("Record"); for (Entry<Long, Map<String, Set<TObject>>> entry : raw .entrySet()) { pretty.put(entry.getKey(), Transformers.transformMapSet(entry.getValue(), Conversions.<String> none(), Conversions.<T> thriftToJavaCasted())); } return pretty; }); }