package com.revolsys.util.function; import java.util.Map; import java.util.function.Supplier; import com.revolsys.collection.map.LinkedHashMapEx; import com.revolsys.collection.map.MapEx; import com.revolsys.io.map.MapObjectFactory; import com.revolsys.io.map.MapSerializer; public class SupplierWithProperties<T> implements Supplier<T>, MapSerializer { private final Supplier<T> supplier; private final MapEx properties = new LinkedHashMapEx(); public SupplierWithProperties(final Supplier<T> supplier, final Map<String, ? extends Object> properties) { super(); this.supplier = supplier; addAllToMap(this.properties, properties); } @Override public T get() { return this.supplier.get(); } @Override public MapEx toMap() { return this.properties; } @Override public String toString() { return MapObjectFactory.getType(this.properties); } }