Skip to content

Commit

Permalink
fix(plc4j/spi): change string type representation to optional
Browse files Browse the repository at this point in the history
  • Loading branch information
sruehl committed Oct 8, 2021
1 parent dd11804 commit 58eeb0c
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
*/
package org.apache.plc4x.java.spi.generation;

import java.util.Optional;
import java.util.stream.Stream;

public interface BufferCommons {
Expand Down Expand Up @@ -57,20 +58,20 @@ default boolean isToBeRenderedAsList(WithReaderWriterArgs... readerWriterArgs) {
return false;
}

default String extractAdditionalStringRepresentation(WithReaderArgs... readerArgs) {
default Optional<String> extractAdditionalStringRepresentation(WithReaderArgs... readerArgs) {
return extractAdditionalStringRepresentation(Stream.of(readerArgs).map(WithReaderWriterArgs.class::cast).toArray(WithReaderWriterArgs[]::new));
}

default String extractAdditionalStringRepresentation(WithWriterArgs... writerArgs) {
default Optional<String> extractAdditionalStringRepresentation(WithWriterArgs... writerArgs) {
return extractAdditionalStringRepresentation(Stream.of(writerArgs).map(WithReaderWriterArgs.class::cast).toArray(WithReaderWriterArgs[]::new));
}

default String extractAdditionalStringRepresentation(WithReaderWriterArgs... readerWriterArgs) {
default Optional<String> extractAdditionalStringRepresentation(WithReaderWriterArgs... readerWriterArgs) {
for (WithReaderWriterArgs arg : readerWriterArgs) {
if (arg instanceof withAdditionalStringRepresentation) {
return ((withAdditionalStringRepresentation) arg).stringRepresentation();
return Optional.of(((withAdditionalStringRepresentation) arg).stringRepresentation());
}
}
return null;
return Optional.empty();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import java.math.BigDecimal;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.util.Optional;

public class WriteBufferJsonBased implements WriteBuffer, BufferCommons, AutoCloseable {

Expand Down Expand Up @@ -311,9 +312,9 @@ private void writeAttr(String logicalName, String dataType, int bitLength, WithW
}
generator.writeStringField(String.format(PLC4X_ATTRIBUTE_FORMAT, logicalName, rwDataTypeKey), dataType);
generator.writeNumberField(String.format(PLC4X_ATTRIBUTE_FORMAT, logicalName, rwBitLengthKey), bitLength);
String stringRepresentation = extractAdditionalStringRepresentation(writerArgs);
if (stringRepresentation != null) {
generator.writeStringField(String.format(PLC4X_ATTRIBUTE_FORMAT, logicalName, rwStringRepresentationKey), stringRepresentation);
Optional<String> stringRepresentation = extractAdditionalStringRepresentation(writerArgs);
if (stringRepresentation.isPresent()) {
generator.writeStringField(String.format(PLC4X_ATTRIBUTE_FORMAT, logicalName, rwStringRepresentationKey), stringRepresentation.get());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import java.math.BigInteger;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Optional;

public class WriteBufferXmlBased implements WriteBuffer, BufferCommons {

Expand Down Expand Up @@ -257,9 +258,9 @@ private void createAndAppend(String logicalName, String dataType, int bitLength,
xmlEventWriter.add(dataTypeAttribute);
Attribute bitLengthAttribute = xmlEventFactory.createAttribute(rwBitLengthKey, String.valueOf(bitLength));
xmlEventWriter.add(bitLengthAttribute);
String additionalStringRepresentation = extractAdditionalStringRepresentation(writerArgs);
if (additionalStringRepresentation != null) {
Attribute additionalStringRepresentationAttribute = xmlEventFactory.createAttribute(rwStringRepresentationKey, additionalStringRepresentation);
Optional<String> additionalStringRepresentation = extractAdditionalStringRepresentation(writerArgs);
if (additionalStringRepresentation.isPresent()) {
Attribute additionalStringRepresentationAttribute = xmlEventFactory.createAttribute(rwStringRepresentationKey, additionalStringRepresentation.get());
xmlEventWriter.add(additionalStringRepresentationAttribute);
}
if (encoding != null) {
Expand Down

0 comments on commit 58eeb0c

Please sign in to comment.