jlcout / epctagcoder

Java library for RFID EPC encode / decode
https://jlcout.github.io/epctagcoder
Apache License 2.0
51 stars 32 forks source link

GIAI Builder returns null when input RFID tag is not valid #10

Open yolave opened 3 years ago

yolave commented 3 years ago

When using org.epctagcoder.parse.GIAI.ParseGIAI.Builder() to create a new instance, setting an invalid RFID tag in the method org.epctagcoder.parse.GIAI.ParseGIAI.ChoiceStep.withRFIDTag(String) produces a NullPointerException when finally calling org.epctagcoder.parse.GIAI.ParseGIAI.BuildStep.build() method.

For example, the following snippet will fail:

ParseGIAI.Builder()
.withRFIDTag("anyNonComplaintValue").build()
 .getGIAI() 

Instead of null, the org.epctagcoder.parse.GIAI.ParseGIAI.BuildStep.build() method might throw a ParseException (or any other dedicated exception) or even better, it could return a java.util.Optional to be easier to check the result of the parsing.

Thank you for this awesome library!

jlcout commented 3 years ago

Hi Yolave!

I'm analyzing, I prefer Optional. I don't particularly like the idea of ​​throwing an exception, although it is very easy to implement.

As I implemented using the step builder pattern I will have problems cascading Optional. It would be a good challenge.

Thank you for the idea.