private List<Long> importOutputStreams(Long newTopologyId, Map<Long, Long> oldToNewStreamIds, List<TopologyStream> streams) { List<Long> importedOutputStreamIds = new ArrayList<>(); for (TopologyStream stream : streams) { Long oldId = stream.getId(); Long newId = oldToNewStreamIds.get(oldId); if (newId == null) { stream.setId(null); TopologyStream addedTopologyStream = addStreamInfo(newTopologyId, stream); newId = addedTopologyStream.getId(); oldToNewStreamIds.put(oldId, newId); } importedOutputStreamIds.add(newId); } return importedOutputStreamIds; }
@Override public Storable fromMap(Map<String, Object> map) { setId((Long) map.get(ID)); setVersionId((Long) map.get(VERSIONID)); setStreamId((String) map.get(STREAMID)); setDescription((String) map.get(DESCRIPTION)); setTopologyId((Long) map.get(TOPOLOGYID)); ObjectMapper mapper = new ObjectMapper(); String fieldsDataStr = (String) map.get(FIELDSDATA); if (!StringUtils.isEmpty(fieldsDataStr)) { List<Field> fields; try { fields = mapper.readValue(fieldsDataStr, new TypeReference<List<Field>>() {}); } catch (IOException e) { throw new RuntimeException(e); } setFields(fields); } return this; } }
public TopologyStream(TopologyStream other) { if (other != null) { setId(other.getId()); setVersionId(other.getVersionId()); setStreamId(other.getStreamId()); setDescription(other.getDescription()); setTopologyId(other.getTopologyId()); if (other.getFields() != null) { setFields(other.getFields().stream().map(Field::copy).collect(Collectors.toList())); } setVersionTimestamp(other.getVersionTimestamp()); } }
public TopologyStream getStreamInfo(Long topologyId, Long streamId, Long versionId) { TopologyStream topologyStream = new TopologyStream(); topologyStream.setId(streamId); topologyStream.setVersionId(versionId); TopologyStream result = dao.get(new StorableKey(STREAMINFO_NAMESPACE, topologyStream.getPrimaryKey())); if (result == null || !result.getTopologyId().equals(topologyId)) { return null; } result.setVersionTimestamp(getVersionTimestamp(versionId)); return result; }
public TopologyStream addStreamInfo(Long topologyId, Long versionId, TopologyStream topologyStream) { if (topologyStream.getId() == null) { topologyStream.setId(dao.nextId(STREAMINFO_NAMESPACE)); } long timestamp = System.currentTimeMillis(); topologyStream.setVersionTimestamp(timestamp); topologyStream.setVersionId(versionId); topologyStream.setTopologyId(topologyId); validateStreamInfo(topologyStream); dao.add(topologyStream); updateVersionTimestamp(versionId, timestamp); return topologyStream; }
public TopologyStream addOrUpdateStreamInfo(Long topologyId, Long id, TopologyStream stream) { stream.setId(id); Long currentVersionId = getCurrentVersionId(topologyId); stream.setVersionId(currentVersionId); stream.setTopologyId(topologyId); long timestamp = System.currentTimeMillis(); stream.setVersionTimestamp(timestamp); validateStreamInfo(stream); TopologyStream curStream = getStreamInfo(topologyId, stream.getId()); if (!curStream.getFields().equals(stream.getFields())) { setReconfigureTarget(stream); } dao.addOrUpdate(stream); updateVersionTimestamp(currentVersionId, timestamp); return stream; }