1 package co.nstant.in.cbor.builder; 2 3 import co.nstant.in.cbor.model.Array; 4 import co.nstant.in.cbor.model.DataItem; 5 import co.nstant.in.cbor.model.Map; 6 7 public class MapBuilder<T extends AbstractBuilder<?>> extends 8 AbstractBuilder<T> { 9 10 private final Map map; 11 MapBuilder(T parent, Map map)12 public MapBuilder(T parent, Map map) { 13 super(parent); 14 this.map = map; 15 } 16 put(DataItem key, DataItem value)17 public MapBuilder<T> put(DataItem key, DataItem value) { 18 map.put(key, value); 19 return this; 20 } 21 put(long key, long value)22 public MapBuilder<T> put(long key, long value) { 23 put(convert(key), convert(value)); 24 return this; 25 } 26 put(long key, boolean value)27 public MapBuilder<T> put(long key, boolean value) { 28 put(convert(key), convert(value)); 29 return this; 30 } 31 put(long key, float value)32 public MapBuilder<T> put(long key, float value) { 33 put(convert(key), convert(value)); 34 return this; 35 } 36 put(long key, double value)37 public MapBuilder<T> put(long key, double value) { 38 put(convert(key), convert(value)); 39 return this; 40 } 41 put(long key, byte[] value)42 public MapBuilder<T> put(long key, byte[] value) { 43 put(convert(key), convert(value)); 44 return this; 45 } 46 put(long key, String value)47 public MapBuilder<T> put(long key, String value) { 48 put(convert(key), convert(value)); 49 return this; 50 } 51 put(String key, long value)52 public MapBuilder<T> put(String key, long value) { 53 put(convert(key), convert(value)); 54 return this; 55 } 56 put(String key, boolean value)57 public MapBuilder<T> put(String key, boolean value) { 58 put(convert(key), convert(value)); 59 return this; 60 } 61 put(String key, float value)62 public MapBuilder<T> put(String key, float value) { 63 put(convert(key), convert(value)); 64 return this; 65 } 66 put(String key, double value)67 public MapBuilder<T> put(String key, double value) { 68 put(convert(key), convert(value)); 69 return this; 70 } 71 put(String key, byte[] value)72 public MapBuilder<T> put(String key, byte[] value) { 73 map.put(convert(key), convert(value)); 74 return this; 75 } 76 put(String key, String value)77 public MapBuilder<T> put(String key, String value) { 78 put(convert(key), convert(value)); 79 return this; 80 } 81 putArray(DataItem key)82 public ArrayBuilder<MapBuilder<T>> putArray(DataItem key) { 83 Array array = new Array(); 84 put(key, array); 85 return new ArrayBuilder<>(this, array); 86 } 87 putArray(long key)88 public ArrayBuilder<MapBuilder<T>> putArray(long key) { 89 Array array = new Array(); 90 put(convert(key), array); 91 return new ArrayBuilder<>(this, array); 92 } 93 putArray(String key)94 public ArrayBuilder<MapBuilder<T>> putArray(String key) { 95 Array array = new Array(); 96 put(convert(key), array); 97 return new ArrayBuilder<>(this, array); 98 } 99 startArray(DataItem key)100 public ArrayBuilder<MapBuilder<T>> startArray(DataItem key) { 101 Array array = new Array(); 102 array.setChunked(true); 103 put(key, array); 104 return new ArrayBuilder<>(this, array); 105 } 106 startArray(long key)107 public ArrayBuilder<MapBuilder<T>> startArray(long key) { 108 return startArray(convert(key)); 109 } 110 startArray(String key)111 public ArrayBuilder<MapBuilder<T>> startArray(String key) { 112 Array array = new Array(); 113 array.setChunked(true); 114 put(convert(key), array); 115 return new ArrayBuilder<>(this, array); 116 } 117 putMap(DataItem key)118 public MapBuilder<MapBuilder<T>> putMap(DataItem key) { 119 Map nestedMap = new Map(); 120 put(key, nestedMap); 121 return new MapBuilder<>(this, nestedMap); 122 } 123 putMap(long key)124 public MapBuilder<MapBuilder<T>> putMap(long key) { 125 Map nestedMap = new Map(); 126 put(convert(key), nestedMap); 127 return new MapBuilder<>(this, nestedMap); 128 } 129 putMap(String key)130 public MapBuilder<MapBuilder<T>> putMap(String key) { 131 Map nestedMap = new Map(); 132 put(convert(key), nestedMap); 133 return new MapBuilder<>(this, nestedMap); 134 } 135 startMap(DataItem key)136 public MapBuilder<MapBuilder<T>> startMap(DataItem key) { 137 Map nestedMap = new Map(); 138 nestedMap.setChunked(true); 139 put(key, nestedMap); 140 return new MapBuilder<>(this, nestedMap); 141 } 142 startMap(long key)143 public MapBuilder<MapBuilder<T>> startMap(long key) { 144 return startMap(convert(key)); 145 } 146 startMap(String key)147 public MapBuilder<MapBuilder<T>> startMap(String key) { 148 return startMap(convert(key)); 149 } 150 end()151 public T end() { 152 return getParent(); 153 } 154 155 } 156