public static <IKT,OKT,IVT,OVT> Map<OKT,OVT> translate(Map<IKT,IVT> input, Translator<IKT,OKT> keyTranslator, Translator<IVT,OVT> valueTranslator) { HashMap<OKT,OVT> output = new HashMap<>(); for (Entry<IKT,IVT> entry : input.entrySet()) output.put(keyTranslator.translate(entry.getKey()), valueTranslator.translate(entry.getValue())); return output; }
public static <IT,OT> List<OT> translate(Collection<IT> input, Translator<IT,OT> translator) { ArrayList<OT> output = new ArrayList<>(input.size()); for (IT in : input) output.add(translator.translate(in)); return output; } }
public static <IKT,OKT,T> Map<OKT,T> translate(Map<IKT,T> input, Translator<IKT,OKT> keyTranslator) { HashMap<OKT,T> output = new HashMap<>(); for (Entry<IKT,T> entry : input.entrySet()) output.put(keyTranslator.translate(entry.getKey()), entry.getValue()); return output; }
@Override public void send(TCredentials credentials, String serverName, MasterClientService.Iface client) throws TException, ThriftSecurityException { TabletSplit split = new TabletSplit(); split.oldTablet = old_extent.toThrift(); split.newTablets = Translator.translate(extents.keySet(), Translators.KET); client.reportSplitExtent(Tracer.traceInfo(), credentials, serverName, split); }
static void trackScanning(Map<KeyExtent,List<Range>> failures, Map<KeyExtent,List<Range>> unscanned, MultiScanResult scanResult) { // translate returned failures, remove them from unscanned, and add them to failures Map<KeyExtent,List<Range>> retFailures = Translator.translate(scanResult.failures, Translators.TKET, new Translator.ListTranslator<>(Translators.TRT)); unscanned.keySet().removeAll(retFailures.keySet()); failures.putAll(retFailures); // translate full scans and remove them from unscanned HashSet<KeyExtent> fullScans = new HashSet<>( Translator.translate(scanResult.fullScans, Translators.TKET)); unscanned.keySet().removeAll(fullScans); // remove partial scan from unscanned if (scanResult.partScan != null) { KeyExtent ke = new KeyExtent(scanResult.partScan); Key nextKey = new Key(scanResult.partNextKey); ListIterator<Range> iterator = unscanned.get(ke).listIterator(); while (iterator.hasNext()) { Range range = iterator.next(); if (range.afterEndKey(nextKey) || (nextKey.equals(range.getEndKey()) && scanResult.partNextKeyInclusive != range.isEndKeyInclusive())) { iterator.remove(); } else if (range.contains(nextKey)) { iterator.remove(); Range partRange = new Range(nextKey, scanResult.partNextKeyInclusive, range.getEndKey(), range.isEndKeyInclusive()); iterator.add(partRange); } } } }
retResults .add(new TKeyValue(entry.getKey().toThrift(), ByteBuffer.wrap(entry.getValue().get()))); Map<TKeyExtent,List<TRange>> retFailures = Translator.translate(failures, Translators.KET, new Translator.ListTranslator<>(Translators.RT)); List<TKeyExtent> retFullScans = Translator.translate(fullScans, Translators.KET); TKeyExtent retPartScan = null; TKey retPartNextKey = null;
ss.extent.getTableId().canonicalID(), ct - ss.startTime, ct - ss.lastAccessTime, ScanType.SINGLE, state, ss.extent.toThrift(), Translator.translate(ss.columnSet, Translators.CT), ss.ssiList, ss.ssio, ss.auths.getAuthorizationsBB(), ss.context); mss.threadPoolExtent.getTableId().canonicalID(), ct - mss.startTime, ct - mss.lastAccessTime, ScanType.BATCH, state, mss.threadPoolExtent.toThrift(), Translator.translate(mss.columnSet, Translators.CT), mss.ssiList, mss.ssio, mss.auths.getAuthorizationsBB(), mss.context));
if (shouldAudit(credentials, tableId)) { @SuppressWarnings({"unchecked", "rawtypes"}) Map<KeyExtent,List<Range>> convertedBatch = Translator.translate(tbatch, new Translator.TKeyExtentTranslator(), new Translator.ListTranslator(new Translator.TRangeTranslator())); truncated.put(entry.getKey(), truncate(entry.getValue())); List<Column> convertedColumns = Translator.translate(tcolumns, new Translator.TColumnTranslator()); String tableName = getTableName(tableId);
} catch (ConstraintViolationException e) { updatedConstraintViolations( Translator.translate(e.violationSummaries, Translators.TCVST)); Map<KeyExtent,Long> failures = Translator.translate(updateErrors.failedExtents, Translators.TKET); updatedConstraintViolations( Translator.translate(updateErrors.violationSummaries, Translators.TCVST)); updateAuthorizationFailures( Translator.translate(updateErrors.authorizationFailures, Translators.TKET));
Translator.translate(scanState.columns, Translators.CT), scanState.size, scanState.serverSideIteratorList, scanState.serverSideIteratorOptions, scanState.authorizations.getAuthorizationsBB(), waitForWrites, scanState.isolated,
throw tse; Map<KeyExtent,List<Range>> batch = Translator.translate(tbatch, new TKeyExtentTranslator(), new Translator.ListTranslator<>(new TRangeTranslator()));
boolean waitForWrites = !ThriftScanner.serversWaitedForWrites.get(ttype).contains(server); Map<TKeyExtent,List<TRange>> thriftTabletRanges = Translator.translate(requested, Translators.KET, new Translator.ListTranslator<>(Translators.RT)); thriftTabletRanges, Translator.translate(columns, Translators.CT), options.serverSideIteratorList, options.serverSideIteratorOptions, ByteBufferUtil.toByteBuffers(authorizations.getAuthorizations()), waitForWrites,
boolean waitForWrites = !serversWaitedForWrites.get(ttype).contains(server); InitialScan isr = client.startScan(tinfo, scanState.context.rpcCreds(), extent.toThrift(), scanState.range.toThrift(), Translator.translate(scanState.columns, Translators.CT), scanState.size, scanState.serverSideIteratorList, scanState.serverSideIteratorOptions, scanState.authorizations.getAuthorizationsBB(), waitForWrites, scanState.isolated,
Map<KeyExtent,List<ServerConditionalMutation>> updates = Translator.translate(mutations, Translators.TKET, new Translator.ListTranslator<>(ServerConditionalMutation.TCMT));
@Override public boolean canScan(TCredentials credentials, Table.ID tableId, Namespace.ID namespaceId, TRange range, List<TColumn> columns, List<IterInfo> ssiList, Map<String,Map<String,String>> ssio, List<ByteBuffer> authorizations) throws ThriftSecurityException { if (shouldAudit(credentials, tableId)) { Range convertedRange = new Range(range); List<String> convertedColumns = truncate( Translator.translate(columns, new Translator.TColumnTranslator())); String tableName = getTableName(tableId); try { boolean canScan = super.canScan(credentials, tableId, namespaceId); audit(credentials, canScan, CAN_SCAN_AUDIT_TEMPLATE, tableName, getAuthString(authorizations), convertedRange, convertedColumns, ssiList, ssio); return canScan; } catch (ThriftSecurityException ex) { audit(credentials, ex, CAN_SCAN_AUDIT_TEMPLATE, getAuthString(authorizations), tableId, convertedRange, convertedColumns, ssiList, ssio); throw ex; } } else { return super.canScan(credentials, tableId, namespaceId); } }
Translator.translate(e.getViolations().asList(), Translators.CVST)); } finally { writeTracker.finishWrite(opid);