@Override public BigDecimal getBigDecimal(String name) { return getBigDecimal(name, 0); }
@Override public BigInteger getBigInteger(String name) { return getBigInteger(name, 0); }
@Override public Boolean getBoolean(String name) { return getBoolean(name, 0); }
@Override public CompletableFuture<PlcReadResponse> read(PlcReadRequest readRequest) { if(!(readRequest instanceof InternalPlcReadRequest)) { throw new IllegalArgumentException("Read request doesn't implement InternalPlcReadRequest"); } InternalPlcReadRequest request = (InternalPlcReadRequest) readRequest; Map<String, Pair<PlcResponseCode, BaseDefaultFieldItem>> fields = new HashMap<>(); for (String fieldName : request.getFieldNames()) { TestField field = (TestField) request.getField(fieldName); Optional<BaseDefaultFieldItem> fieldItemOptional = device.get(field); ImmutablePair<PlcResponseCode, BaseDefaultFieldItem> fieldPair; boolean present = fieldItemOptional.isPresent(); fieldPair = present ? new ImmutablePair<>(PlcResponseCode.OK, fieldItemOptional.get()) : new ImmutablePair<>(PlcResponseCode.NOT_FOUND, null); fields.put(fieldName, fieldPair); } PlcReadResponse response = new DefaultPlcReadResponse(request, fields); return CompletableFuture.completedFuture(response); }
@Override public Byte getByte(String name) { return getByte(name, 0); }
@Override public LocalDate getDate(String name) { return getDate(name, 0); }
@Override public CompletableFuture<PlcReadResponse> read(PlcReadRequest readRequest) { InternalPlcReadRequest request = checkInternal(readRequest, InternalPlcReadRequest.class); Map<String, Pair<PlcResponseCode, BaseDefaultFieldItem>> fields = new HashMap<>(); for (String fieldName : request.getFieldNames()) { TestField field = (TestField) request.getField(fieldName); Optional<BaseDefaultFieldItem> fieldItemOptional = device.get(field); ImmutablePair<PlcResponseCode, BaseDefaultFieldItem> fieldPair; boolean present = fieldItemOptional.isPresent(); fieldPair = present ? new ImmutablePair<>(PlcResponseCode.OK, fieldItemOptional.get()) : new ImmutablePair<>(PlcResponseCode.NOT_FOUND, null); fields.put(fieldName, fieldPair); } PlcReadResponse response = new DefaultPlcReadResponse(request, fields); return CompletableFuture.completedFuture(response); }
@Override public CompletableFuture<PlcReadResponse> read(PlcReadRequest readRequest) { Map<String, Pair<PlcResponseCode, BaseDefaultFieldItem>> response = readRequest.getFieldNames().stream() .collect(Collectors.toMap(Function.identity(), name -> device.read(((MockField) readRequest.getField(name)).getFieldQuery()))); return CompletableFuture.completedFuture(new DefaultPlcReadResponse((DefaultPlcReadRequest)readRequest, response)); }
@Override public CompletableFuture<PlcReadResponse> read(PlcReadRequest readRequest) { Map<String, Pair<PlcResponseCode, BaseDefaultFieldItem>> response = readRequest.getFieldNames().stream() .collect(Collectors.toMap(Function.identity(), name -> device.read(((MockField) readRequest.getField(name)).getFieldQuery()))); return CompletableFuture.completedFuture(new DefaultPlcReadResponse((DefaultPlcReadRequest)readRequest, response)); }
.forEach(stringPairMap -> stringPairMap.forEach(fields::put)); plcResponse = new DefaultPlcReadResponse(internalPlcReadRequest, fields); } else if (originalPlcRequestContainer.getRequest() instanceof InternalPlcWriteRequest) { InternalPlcWriteRequest internalPlcWriteRequest = (InternalPlcWriteRequest) originalPlcRequestContainer.getRequest();
values.put(fieldName, new ImmutablePair<>(responseCode, fieldItem)); InternalPlcReadResponse response = new DefaultPlcReadResponse(request, values); plcRequestContainer.getResponseFuture().complete(response);
return new DefaultPlcReadResponse(plcReadRequest, values);