@Override public <T> Builder addItem(String name, String fieldQuery, T... values) { Objects.requireNonNull(values); Class<?> checkedClazz = null; for (T value : values) { if (checkedClazz == null) { checkedClazz = value.getClass(); } if (value.getClass() != checkedClazz) { throw new IllegalArgumentException("Invalid class found " + value.getClass() + ". should all be " + checkedClazz); } } BiFunction<PlcField, Object[], BaseDefaultFieldItem> plcFieldFieldItemBiFunction = handlerMap.get(checkedClazz); if (plcFieldFieldItemBiFunction == null) { throw new IllegalArgumentException("no field handler for " + checkedClazz + " found"); } return addItem(name, fieldQuery, values, plcFieldFieldItemBiFunction); }
@Override public Builder addItem(String name, String fieldQuery, String... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeString); }
@Override public Builder addItem(String name, String fieldQuery, Double... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeDouble); }
@Override public Builder addItem(String name, String fieldQuery, Float... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeFloat); }
@Override public Builder addItem(String name, String fieldQuery, Long... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeLong); }
@Override public Builder addItem(String name, String fieldQuery, Integer... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeInteger); }
@Override public Builder addItem(String name, String fieldQuery, Byte... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeByte); }
@Override public Builder addItem(String name, String fieldQuery, LocalDateTime... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeDateTime); }
@Override public Builder addItem(String name, String fieldQuery, BigDecimal... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeBigDecimal); }
@Override public PlcWriteRequest.Builder addItem(String name, String fieldQuery, BigInteger... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeBigInteger); }
@Override public Builder addItem(String name, String fieldQuery, Byte[]... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeDateTime); }
@Override public Builder addItem(String name, String fieldQuery, LocalDate... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeDate); }
@Override public Builder addItem(String name, String fieldQuery, LocalTime... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeTime); }
@Override public Builder addItem(String name, String fieldQuery, Short... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeShort); }
@Override public Builder addItem(String name, String fieldQuery, byte[]... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeDateTime); }
@Override public Builder addItem(String name, String fieldQuery, Boolean... values) { return addItem(name, fieldQuery, values, fieldHandler::encodeBoolean); }