epctagcoder icon indicating copy to clipboard operation
epctagcoder copied to clipboard

GIAI Builder returns null when input RFID tag is not valid

Open yolave opened this issue 4 years ago • 1 comments

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!

yolave avatar Dec 15 '20 10:12 yolave

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.

jlcout avatar Dec 18 '20 02:12 jlcout