@Nullable private NamespacedEntityId toComponent(MDSKey.Splitter splitter, ProgramId program) { char marker = (char) splitter.getInt(); switch (marker) { case NONE_MARKER: return null; case FLOWLET_MARKER : return program.flowlet(splitter.getString()); default: throw new IllegalStateException("Invalid row with component marker " + marker); } }
private boolean matchesEndpoint(byte[] column, EndPoint endPoint) { // RAW_OPERATION_MARKER key is not written as MDSKey with byte length encoding so don't try to create an object // out of it if (Arrays.equals(column, RAW_OPERATION_MARKER)) { return false; } MDSKey.Splitter keySplitter = new MDSKey(column).split(); return Arrays.equals(OUTGOING_DIRECTION_MARKER, keySplitter.getBytes()) && keySplitter.getString().equals(endPoint.getNamespace()) && keySplitter.getString().equals(endPoint.getName()); }
private boolean matchesEndpoint(byte[] column, EndPoint endPoint) { // RAW_OPERATION_MARKER key is not written as MDSKey with byte length encoding so don't try to create an object // out of it if (Arrays.equals(column, RAW_OPERATION_MARKER)) { return false; } MDSKey.Splitter keySplitter = new MDSKey(column).split(); return Arrays.equals(OUTGOING_DIRECTION_MARKER, keySplitter.getBytes()) && keySplitter.getString().equals(endPoint.getNamespace()) && keySplitter.getString().equals(endPoint.getName()); }
public List<ApplicationId> getAllAppVersionsAppIds(String namespaceId, String appId) { List<ApplicationId> appIds = new ArrayList<>(); for (MDSKey key : listKV(new MDSKey.Builder().add(TYPE_APP_META, namespaceId, appId).build(), ApplicationMeta.class).keySet()) { MDSKey.Splitter splitter = key.split(); splitter.skipBytes(); // skip recordType splitter.skipBytes(); // skip namespaceId splitter.skipBytes(); // skip appId String versionId = splitter.hasRemaining() ? splitter.getString() : ApplicationId.DEFAULT_VERSION; appIds.add(new NamespaceId(namespaceId).app(appId, versionId)); } return appIds; }
private String extractFieldName(byte[] columnKey) { MDSKey.Splitter keySplitter = new MDSKey(columnKey).split(); // The key is // [outgoing prefix (o)][EndPoint:Namespace][EndPoint:Name][fieldName] // skip prefix keySplitter.skipBytes(); // Skip namespace keySplitter.skipString(); // skip dataset name keySplitter.skipString(); return keySplitter.getString(); } }
private NamespacedEntityId toEntityId(MDSKey.Splitter splitter, char marker) { switch (marker) { case DATASET_MARKER: return new DatasetId(splitter.getString(), splitter.getString()); case STREAM_MARKER: return new StreamId(splitter.getString(), splitter.getString()); case PROGRAM_MARKER: return new ProgramId(splitter.getString(), splitter.getString(), ProgramType.valueOfCategoryName(splitter.getString()), splitter.getString()); default: throw new IllegalStateException("Invalid row with marker " + marker); } }
public List<ApplicationId> getAllAppVersionsAppIds(String namespaceId, String appId) { List<ApplicationId> appIds = new ArrayList<>(); for (MDSKey key : listKV(new MDSKey.Builder().add(TYPE_APP_META, namespaceId, appId).build(), ApplicationMeta.class).keySet()) { MDSKey.Splitter splitter = key.split(); splitter.skipBytes(); // skip recordType splitter.skipBytes(); // skip namespaceId splitter.skipBytes(); // skip appId String versionId = splitter.hasRemaining() ? splitter.getString() : ApplicationId.DEFAULT_VERSION; appIds.add(new NamespaceId(namespaceId).app(appId, versionId)); } return appIds; }
private String extractFieldName(byte[] columnKey) { MDSKey.Splitter keySplitter = new MDSKey(columnKey).split(); // The key is // [outgoing prefix (o)][EndPoint:Namespace][EndPoint:Name][fieldName] // skip prefix keySplitter.skipBytes(); // Skip namespace keySplitter.skipString(); // skip dataset name keySplitter.skipString(); return keySplitter.getString(); } }
static String getNamespaceId(MDSKey key) { MDSKey.Splitter keySplitter = key.split(); // The rowkey is // [rowPrefix][targetType][targetId][key] for value rows and // [rowPrefix][targetType][targetId][key][index] for value index rows // so skip the first two. keySplitter.skipBytes(); keySplitter.skipString(); // We are getting the first part of [targetId] which always be the namespace id. return keySplitter.getString(); }
static String extractTargetType(byte[] rowKey) { MDSKey.Splitter keySplitter = new MDSKey(rowKey).split(); // skip rowPrefix keySplitter.skipBytes(); // return targetType return keySplitter.getString(); }
/** * Parses the {@link ProgramRunId} from the {@link MDSKey}. */ private ProgramRunId getProgramRunId(MDSKey key) { MDSKey.Splitter st = key.split(); st.skipString(); // Skip prefix return new ProgramRunId(new ApplicationId(st.getString(), st.getString(), st.getString()), ProgramType.valueOf(st.getString()), st.getString(), st.getString()); } }
private NamespacedEntityId toEntityId(MDSKey.Splitter splitter, char marker) { switch (marker) { case DATASET_MARKER: return new DatasetId(splitter.getString(), splitter.getString()); case PROGRAM_MARKER: return new ProgramId(splitter.getString(), splitter.getString(), ProgramType.valueOfCategoryName(splitter.getString()), splitter.getString()); default: throw new IllegalStateException("Invalid row with marker " + marker); } }
static String getTargetType(byte[] rowKey) { MDSKey.Splitter keySplitter = new MDSKey(rowKey).split(); // The rowkey is // [rowPrefix][targetType][targetId][key] for value rows and // [rowPrefix][targetType][targetId][key][index] for value index rows keySplitter.getBytes(); return keySplitter.getString(); }
/** * Parses the {@link ProgramRunId} from the {@link MDSKey}. */ private ProgramRunId getProgramRunId(MDSKey key) { MDSKey.Splitter st = key.split(); st.skipString(); // Skip prefix return new ProgramRunId(new ApplicationId(st.getString(), st.getString(), st.getString()), ProgramType.valueOf(st.getString()), st.getString(), st.getString()); } }
static String extractTargetType(byte[] rowKey) { MDSKey.Splitter keySplitter = new MDSKey(rowKey).split(); // skip rowPrefix keySplitter.skipBytes(); // return targetType return keySplitter.getString(); }