
org.thirdteeth.immutables.pcollections.encodings.PCollectionsPMapEncodings Maven / Gradle / Ivy
package org.thirdteeth.immutables.pcollections.encodings;
import org.immutables.encode.Encoding;
import org.pcollections.HashTreePMap;
import org.pcollections.PMap;
import java.util.Map;
@Encoding
class PCollectionsPMapEncodings {
// Using a linked variant provides more predictable semantics for serialization
@Encoding.Impl
private PMap field = HashTreePMap.empty();
PCollectionsPMapEncodings() {
}
@Encoding.Builder
static final class Builder {
private PMap pmap = HashTreePMap.empty();
Builder() {
}
@Encoding.Naming(standard = Encoding.StandardNaming.PUT)
@Encoding.Init
void put(final K key, final V value) {
this.pmap = this.pmap.plus(key, value);
}
@Encoding.Init
@Encoding.Copy
void set(final PMap elements) {
this.pmap = elements;
}
@Encoding.Naming(value = "setJavaMap*")
@Encoding.Init
void setJavaMap(final Map in_map) {
this.pmap = HashTreePMap.from(in_map);
}
@Encoding.Naming(standard = Encoding.StandardNaming.PUT_ALL)
@Encoding.Init
void putAll(final Map map) {
this.pmap = this.pmap.plusAll(map);
}
@Encoding.Build
PMap build()
{
return this.pmap;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy