public Builder() { this(NaN, HashTreePMap.empty()); }
@JsonCreator public PlanNodeStatsEstimate( @JsonProperty("outputRowCount") double outputRowCount, @JsonProperty("symbolStatistics") Map<Symbol, SymbolStatsEstimate> symbolStatistics) { this(outputRowCount, HashTreePMap.from(requireNonNull(symbolStatistics, "symbolStatistics is null"))); }
PMap<Integer,Integer> pmap = HashTreePMap.empty(); Map<Integer,Integer> map = new HashMap<Integer,Integer>(); Random r = new Random(); UtilityTest.assertEqualsAndHash(map.entrySet(), pmap.entrySet()); UtilityTest.assertEqualsAndHash(pmap, HashTreePMap.from(pmap)); UtilityTest.assertEqualsAndHash(HashTreePMap.empty(), pmap.minusAll(pmap.keySet())); UtilityTest.assertEqualsAndHash(pmap, pmap.plusAll(pmap));
public static <K, V> PersistentMapX<K, V> singleton(final K key, final V value) { return new PMapXImpl<K, V>( HashTreePMap.singleton(key, value)); }
@Override public PMap<String, V> applyUnsafe(JsonParser p) throws IOException { Map<String, V> values = new HashMap<>(); if (p.nextToken() == JsonToken.END_OBJECT) { return HashTreePMap.empty(); } while (p.nextValue() != JsonToken.END_OBJECT) { String fieldName = p.getCurrentName(); values.put(fieldName, valueDeserialiser.apply(p)); } return HashTreePMap.from(values); } }
public static <K extends Term, V extends Term> ImmutableMapSubstitution<K, V> singleton(K key, V value) { return new ImmutableMapSubstitution<>(HashTreePMap.singleton(key, value)); }
public static <K,V> PMap<K,V> map() { return HashTreePMap.empty(); } }
public PMap<K, V> build() { return HashTreePMap.from(build); } }
/** * <pre> * {@code * PMap<Integer,String> q = Reducers.<Integer,String>toPMap() .mapReduce(Stream.of(Arrays.asList("hello",1),Arrays.asList("world",2))); * * } * </pre> * @return Reducer for PMap */ public static <K, V> Reducer<PMap<K, V>> toPMap() { return Reducer.<PMap<K, V>> of(HashTreePMap.empty(), (final PMap<K, V> a) -> b -> a.plusAll(b), (in) -> { final List w = ((TupleWrapper) () -> in).values(); return HashTreePMap.singleton((K) w.get(0), (V) w.get(1)); }); } /**
public static <K,V> PMap<K,V> map() { return HashTreePMap.empty(); } }
public static <K, V> PMap<K, V> of() { return HashTreePMap.from(new HashMap<>()); } public static <K, V> PMap<K, V> of(K key, V value) {
/** * @param <K> * @param <V> * @param key * @param value * @return empty().plus(key, value) */ public static <K,V> HashPMap<K,V> singleton(final K key, final V value) { return HashTreePMap.<K,V>empty().plus(key, value); }
@JsonCreator public PlanNodeStatsEstimate( @JsonProperty("outputRowCount") double outputRowCount, @JsonProperty("symbolStatistics") Map<Symbol, SymbolStatsEstimate> symbolStatistics) { this(outputRowCount, HashTreePMap.from(requireNonNull(symbolStatistics, "symbolStatistics is null"))); }
/** * @param <K> * @param <V> * @param map * @return empty().plusAll(map) */ public static <K,V> HashPMap<K,V> from(final Map<? extends K, ? extends V> map) { return HashTreePMap.<K,V>empty().plusAll(map); } }
@JsonCreator public PlanNodeStatsEstimate( @JsonProperty("outputRowCount") double outputRowCount, @JsonProperty("symbolStatistics") Map<Symbol, SymbolStatsEstimate> symbolStatistics) { this(outputRowCount, HashTreePMap.from(requireNonNull(symbolStatistics, "symbolStatistics is null"))); }
/** * @param <K> * @param <V> * @param key * @param value * @return empty().plus(key, value) */ public static <K,V> HashPMap<K,V> singleton(final K key, final V value) { return HashTreePMap.<K,V>empty().plus(key, value); }
@SuppressWarnings("unchecked") private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException { try { Field entriesField = getClass().getDeclaredField("entries"); entriesField.setAccessible(true); entriesField.set(this, HashTreePMap.from((Map<K, V>) in.readObject())); } catch (IllegalAccessException | NoSuchFieldException e) { throw new IOException(e); } }
/** * @param <K> * @param <V> * @param map * @return empty().plusAll(map) */ public static <K,V> HashPMap<K,V> from(final Map<? extends K, ? extends V> map) { return HashTreePMap.<K,V>empty().plusAll(map); } }