@Override public String readLine() throws IOException { return readUTF(); }
@Override public String deserialize(DataInput2 in, int available) throws IOException { return in.readUTF(); }
@Override public String deserialize(DataInput2 in, int available) throws IOException { return in.readUTF(); }
@Override public String deserialize(DataInput2 in, int available) throws IOException { return in.readUTF().intern(); }
@Override public LockDesc deserialize(@NotNull DataInput2 input, int available) throws IOException { byte version = input.readByte(); if (version != VERSION) { throw new IOException("Unexpected data format"); } final String path = input.readUTF(); final String hash = input.readUTF(); final String token = input.readUTF(); final String owner = input.readUTF(); final String comment = input.readBoolean() ? input.readUTF() : null; final long created = input.readLong(); return new LockDesc(path, hash, token, owner, comment, created); }
@Override public Class<?> deserialize(DataInput2 in, int available) throws IOException { try { return classLoader.loadClass(in.readUTF()); } catch (ClassNotFoundException e) { throw new DBException.SerializationError(e); } }
@Override public TimeSeriesMetadata deserialize(DataInput2 input, int available) throws IOException { String name = input.readUTF(); TimeSeriesDataType dataType = TimeSeriesDataType.valueOf(input.readUTF()); Map<String, String> tags = new HashMap<>(); int size = input.readInt(); for (int i = 0; i < size; i++) { String key = input.readUTF(); String value = input.readUTF(); tags.put(key, value); } TimeSeriesIndex index = TimeSeriesIndexSerializer.INSTANCE.deserialize(input, available); return new TimeSeriesMetadata(name, dataType, tags, index); } }
@Override public Map<String, Object> deserialize(DataInput2 input, int available) throws IOException { Objects.requireNonNull(input); Map<String, Object> map = new TreeMap(); int size = input.unpackInt(); for (int i = 0; i < size; i++) { String k = input.readUTF(); if (k.startsWith("D")) { map.put(k.substring(1), input.readDouble()); } else if (k.startsWith("L")) { map.put(k.substring(1), input.readLong()); } else if (k.startsWith("S")) { map.put(k.substring(1), input.readUTF()); } else if (k.startsWith("I")) { map.put(k.substring(1), input.readInt()); } } return map; }
@Override public NamedLink deserialize(DataInput2 input, int available) throws IOException { java.util.UUID nodeUuid = UuidSerializer.INSTANCE.deserialize(input, available); String name = input.readUTF(); return new NamedLink(nodeUuid, name); } }
@Override public TimeSeriesIndex deserialize(DataInput2 input, int available) throws IOException { String indexType = input.readUTF(); long startTime = input.readLong(); long endTime = input.readLong(); long spacing = input.readLong(); if ("regularIndex".equals(indexType)) { return new RegularTimeSeriesIndex(startTime, endTime, spacing); } else { throw new AssertionError(); } } }
@Override public TimeSeriesKey deserialize(DataInput2 input, int available) throws IOException { java.util.UUID nodeUuid = UuidSerializer.INSTANCE.deserialize(input, available); int version = input.readInt(); String timeSeriesName = input.readUTF(); return new TimeSeriesKey(nodeUuid, version, timeSeriesName); } }
@Override public StringDataChunk deserialize(DataInput2 input, int available) throws IOException { String type = input.readUTF(); if ("uncompressed".equals(type)) { int offset = input.readInt(); int length = input.readInt(); String[] values = new String[length]; for (int i = 0; i < length; i++) { values[i] = input.readUTF(); } return new UncompressedStringDataChunk(offset, values); } else if ("compressed".equals(type)) { int offset = input.readInt(); int uncompressedLength = input.readInt(); int stepLengthsLength = input.readInt(); int[] stepLengths = new int[stepLengthsLength]; for (int i = 0; i < stepLengthsLength; i++) { stepLengths[i] = input.readInt(); } int stepValuesLength = input.readInt(); String[] stepValues = new String[stepValuesLength]; for (int i = 0; i < stepValuesLength; i++) { stepValues[i] = input.readUTF(); } return new CompressedStringDataChunk(offset, uncompressedLength, stepValues, stepLengths); } else { throw new AssertionError(); } } }
@Override public NodeInfo deserialize(DataInput2 input, int available) throws IOException { String nodeId = UuidSerializer.INSTANCE.deserialize(input, available).toString(); String name = input.readUTF(); String pseudoClass = input.readUTF(); String description = input.readUTF(); long creationTime = input.readLong(); long modificationTime = input.readLong(); int version = input.readInt(); NodeGenericMetadata metadata = new NodeGenericMetadata(); int stringMetadataSize = input.readInt(); for (int i = 0; i < stringMetadataSize; i++) { metadata.setString(input.readUTF(), input.readUTF()); } int doubleMetadataSize = input.readInt(); for (int i = 0; i < doubleMetadataSize; i++) { metadata.setDouble(input.readUTF(), input.readDouble()); } int intMetadataSize = input.readInt(); for (int i = 0; i < intMetadataSize; i++) { metadata.setInt(input.readUTF(), input.readInt()); } int booleanMetadataSize = input.readInt(); for (int i = 0; i < booleanMetadataSize; i++) { metadata.setBoolean(input.readUTF(), input.readBoolean()); } return new NodeInfo(nodeId, name, pseudoClass, description, creationTime, modificationTime, version, metadata); } }
@Override public DoubleDataChunk deserialize(DataInput2 input, int available) throws IOException { String type = input.readUTF(); if ("uncompressed".equals(type)) { int offset = input.readInt(); int length = input.readInt(); double[] values = new double[length]; for (int i = 0; i < length; i++) { values[i] = input.readDouble(); } return new UncompressedDoubleDataChunk(offset, values); } else if ("compressed".equals(type)) { int offset = input.readInt(); int uncompressedLength = input.readInt(); int stepLengthsLength = input.readInt(); int[] stepLengths = new int[stepLengthsLength]; for (int i = 0; i < stepLengthsLength; i++) { stepLengths[i] = input.readInt(); } int stepValuesLength = input.readInt(); double[] stepValues = new double[stepValuesLength]; for (int i = 0; i < stepValuesLength; i++) { stepValues[i] = input.readDouble(); } return new CompressedDoubleDataChunk(offset, uncompressedLength, stepValues, stepLengths); } else { throw new AssertionError(); } } }