public static View fromEntityId(StreamViewId viewId) { return from(Id.Namespace.fromEntityId(viewId.getNamespaceId()), viewId.getStream(), viewId.getView()); } }
public StreamViewId view(String view) { return new StreamViewId(namespace, stream, view); }
private MDSKey getKey(StreamViewId id) { return new MDSKey.Builder() .add(TYPE_STREAM_VIEW, id.getNamespace(), id.getStream(), id.getEntityName()) .build(); }
@SuppressWarnings("unused") public static StreamViewId fromIdParts(Iterable<String> idString) { Iterator<String> iterator = idString.iterator(); return new StreamViewId( next(iterator, "namespace"), next(iterator, "stream"), nextAndEnd(iterator, "view")); }
} else if (type.equals(TYPE_MAP.get(StreamViewId.class))) { StreamViewId view = (StreamViewId) namespacedEntityId; String namespaceId = view.getNamespace(); String streamId = view.getStream(); String viewId = view.getView(); builder.add(namespaceId); builder.add(streamId);
@GET @Path("/streams/{stream}/views/{view}") public void get(HttpRequest request, HttpResponder responder, @PathParam("namespace") String namespace, @PathParam("stream") String stream, @PathParam("view") String view) throws Exception { StreamViewId viewId = new StreamViewId(namespace, stream, view); ViewDetail detail = new ViewDetail(viewId.getEntityName(), admin.getView(viewId)); responder.sendJson(HttpResponseStatus.OK, GSON.toJson(detail, ViewDetail.class)); } }
@Override public String getEntityName() { return getView(); }
@Override public String apply(StreamViewId input) { return input.getEntityName(); } });
@Override public Set<String> getSystemTagsToAdd() { return Collections.singleton(viewId.getStream()); }
@Override public ViewDetail get(StreamViewId viewId) throws NotFoundException { Lock lock = viewsLock.readLock(); lock.lock(); try { if (!views.containsRow(viewId)) { throw new NotFoundException(viewId); } return new ViewDetail(viewId.getEntityName(), views.get(viewId, viewId.getParent())); } finally { lock.unlock(); } } }
public StreamViewId(String namespace, String stream, String view) { super(namespace, EntityType.STREAM_VIEW); if (stream == null) { throw new NullPointerException("Stream ID cannot be null."); } if (view == null) { throw new NullPointerException("View ID cannot be null."); } ensureValidId("stream", stream); ensureValidId("view", view); this.stream = stream; this.view = view; }
@Override public Map<String, String> getSystemPropertiesToAdd() { ImmutableMap.Builder<String, String> properties = ImmutableMap.builder(); properties.put(ENTITY_NAME_KEY, viewId.getEntityName()); if (!existing) { properties.put(CREATION_TIME_KEY, String.valueOf(System.currentTimeMillis())); } return properties.build(); }
@DELETE @Path("/streams/{stream}/views/{view}") public void delete(HttpRequest request, HttpResponder responder, @PathParam("namespace") String namespace, @PathParam("stream") String stream, @PathParam("view") String view) throws Exception { StreamViewId viewId = new StreamViewId(namespace, stream, view); admin.deleteView(viewId); responder.sendStatus(HttpResponseStatus.OK); }
@Override public void perform(Arguments arguments, PrintStream output) throws Exception { StreamId streamId = cliConfig.getCurrentNamespace().stream(arguments.get(ArgumentName.STREAM.toString())); StreamViewId view = streamId.view(arguments.get(ArgumentName.VIEW.toString())); client.delete(view); output.printf("Successfully deleted stream-view '%s'\n", view.getEntityName()); }
private StreamViewId deserializeViewId(JsonObject id) { StreamId streamId = deserializeStreamId(id.getAsJsonObject("stream")); String view = id.get("id").getAsString(); return new StreamViewId(streamId.getNamespace(), streamId.getStream(), view); } }
@Override public ViewDetail get(final StreamViewId viewId) throws NotFoundException { return Transactionals.execute(transactional, context -> { StreamViewEntry viewEntry = getViewDataset(context).get(getKey(viewId), StreamViewEntry.class); if (viewEntry == null) { throw new NotFoundException(viewId); } return new ViewDetail(viewId.getEntityName(), viewEntry.getSpec()); }, NotFoundException.class); }