Rework parser infrastructure to support partial message processing
[bgpcep.git] / pcep / impl / src / main / java / org / opendaylight / protocol / pcep / impl / message / PCEPUpdateRequestMessageParser.java
index 32c617792dcb0b721d4b5a766a626c79dec5ce83..ca0ba404e6281be14ade122f959edc50d5858224 100644 (file)
@@ -81,22 +81,14 @@ public class PCEPUpdateRequestMessageParser extends AbstractMessageParser {
        }
 
        @Override
-       public Message parseMessage(final byte[] buffer) throws PCEPDeserializerException {
-               if (buffer == null || buffer.length == 0) {
-                       throw new PCEPDeserializerException("Pcup message cannot be empty.");
-               }
-               try {
-                       final List<Object> objs = parseObjects(buffer);
-                       return validate(objs);
-               } catch (final PCEPDocumentedException e) {
-                       return createErrorMsg(e.getError());
-               }
-       }
-
-       public Message validate(final List<Object> objects) throws PCEPDeserializerException, PCEPDocumentedException {
+       protected Message validate(final List<Object> objects, final List<Message> errors) throws PCEPDeserializerException, PCEPDocumentedException {
                if (objects == null) {
                        throw new IllegalArgumentException("Passed list can't be null.");
                }
+               if (objects.isEmpty()) {
+                       throw new PCEPDeserializerException("Pcup message cannot be empty.");
+               }
+
                final List<Updates> updateRequests = Lists.newArrayList();
 
                while (!objects.isEmpty()) {