From 9fec9b7f472b2848991288fe3f7bc01ed78e0811 Mon Sep 17 00:00:00 2001 From: Olivier Dugeon Date: Tue, 22 Oct 2019 16:18:53 +0200 Subject: [PATCH] Clean pcep/base-parser code Fix maven checktyle errors: - Missing period at end of first comment for JavaDoc - Split line longer than 120 characters - Rename XROSRLGSubobjectParser.java to XROSrlgSubobjectParser.java and update pcep/impl PCEPXROSubobjectParserTest Junit consequently - Replace // fall-through comments by // fallthrough for OpenJDK-11 compliance [1] Improve coding style: - Indentation - Remove superfluous code when one or several setters are called after a builder [1] https://checkstyle.sourceforge.io/apidocs/com/puppycrawl/tools/checkstyle/checks/coding/FallThroughCheck.html https://issues.apache.org/jira/browse/MCHECKSTYLE-383 JIRA: BGPCEP-715 Change-Id: Id7799e2705ae80420f8b4f0ec8f86929b85bc395 Co-authored-by: guillaume.lambert Signed-off-by: Olivier Dugeon --- .../parser/BaseParserExtensionActivator.java | 6 +- .../message/PCEPCloseMessageParser.java | 5 +- .../message/PCEPErrorMessageParser.java | 46 +++-- .../message/PCEPKeepAliveMessageParser.java | 11 +- .../PCEPMonitoringReplyMessageParser.java | 14 +- .../PCEPMonitoringRequestMessageParser.java | 11 +- .../PCEPNotificationMessageParser.java | 35 ++-- .../parser/message/PCEPOpenMessageParser.java | 12 +- .../message/PCEPReplyMessageParser.java | 95 ++++----- .../message/PCEPRequestMessageParser.java | 192 +++++++++--------- .../message/PCEPStartTLSMessageParser.java | 6 +- .../AbstractEROWithSubobjectsParser.java | 11 +- .../object/AbstractPccIdReqObjectParser.java | 9 +- .../AbstractRROWithSubobjectsParser.java | 14 +- ...AbstractVendorInformationObjectParser.java | 14 +- .../object/PCEPBandwidthObjectParser.java | 18 +- .../object/PCEPClassTypeObjectParser.java | 21 +- .../parser/object/PCEPCloseObjectParser.java | 20 +- .../parser/object/PCEPErrorObjectParser.java | 12 +- .../object/PCEPExcludeRouteObjectParser.java | 12 +- .../PCEPExistingBandwidthObjectParser.java | 31 +-- .../object/PCEPExplicitRouteObjectParser.java | 10 +- .../PCEPGlobalConstraintsObjectParser.java | 18 +- .../object/PCEPIncludeRouteObjectParser.java | 26 ++- .../object/PCEPLoadBalancingObjectParser.java | 12 +- .../parser/object/PCEPLspaObjectParser.java | 19 +- .../parser/object/PCEPMetricObjectParser.java | 16 +- .../object/PCEPMonitoringObjectParser.java | 12 +- .../parser/object/PCEPNoPathObjectParser.java | 16 +- .../object/PCEPNotificationObjectParser.java | 12 +- .../PCEPObjectiveFunctionObjectParser.java | 14 +- .../parser/object/PCEPOpenObjectParser.java | 26 +-- .../object/PCEPPathKeyObjectParser.java | 42 ++-- .../object/PCEPPccIdReqIPv4ObjectParser.java | 9 +- .../object/PCEPPccIdReqIPv6ObjectParser.java | 12 +- .../object/PCEPPceIdIPv4ObjectParser.java | 11 +- .../object/PCEPPceIdIPv6ObjectParser.java | 11 +- .../object/PCEPProcTimeObjectParser.java | 2 +- .../object/PCEPReportedRouteObjectParser.java | 10 +- .../PCEPRequestParameterObjectParser.java | 41 ++-- .../parser/object/PCEPSvecObjectParser.java | 22 +- .../points/PCEPEndPointsIpv4ObjectParser.java | 16 +- .../points/PCEPEndPointsIpv6ObjectParser.java | 14 +- .../PCEPP2MPEndPointsIpv6ObjectParser.java | 20 +- .../parser/subobject/AsNumberCaseParser.java | 1 - .../subobject/EROAsNumberSubobjectParser.java | 8 +- ...ExplicitExclusionRouteSubobjectParser.java | 97 +++++---- .../EROIpv4PrefixSubobjectParser.java | 24 ++- .../EROIpv6PrefixSubobjectParser.java | 21 +- .../subobject/EROLabelSubobjectParser.java | 22 +- ...EROUnnumberedInterfaceSubobjectParser.java | 14 +- .../subobject/GeneralizedLabelParser.java | 17 +- .../RROIpv4PrefixSubobjectParser.java | 28 ++- .../RROIpv6PrefixSubobjectParser.java | 23 ++- .../subobject/RROLabelSubobjectParser.java | 20 +- .../RROPathKey32SubobjectParser.java | 16 +- ...RROUnnumberedInterfaceSubobjectParser.java | 16 +- .../parser/subobject/Type1LabelParser.java | 2 +- .../WavebandSwitchingLabelParser.java | 5 +- .../subobject/XROAsNumberSubobjectParser.java | 8 +- .../XROIpv4PrefixSubobjectParser.java | 13 +- .../XROIpv6PrefixSubobjectParser.java | 26 ++- .../XROPathKey128SubobjectParser.java | 14 +- .../XROPathKey32SubobjectParser.java | 16 +- ...arser.java => XROSrlgSubobjectParser.java} | 6 +- ...XROUnnumberedInterfaceSubobjectParser.java | 21 +- .../AbstractVendorInformationTlvParser.java | 3 +- .../parser/tlv/NoPathVectorTlvParser.java | 12 +- .../pcep/parser/tlv/OFListTlvParser.java | 2 +- .../pcep/parser/tlv/OrderTlvParser.java | 2 +- .../tlv/OverloadedDurationTlvParser.java | 2 +- .../pcep/parser/tlv/ReqMissingTlvParser.java | 2 +- .../protocol/pcep/parser/util/Util.java | 7 +- .../pcep/impl/PCEPXROSubobjectParserTest.java | 67 +++--- 74 files changed, 826 insertions(+), 675 deletions(-) rename pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/{XROSRLGSubobjectParser.java => XROSrlgSubobjectParser.java} (95%) diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/BaseParserExtensionActivator.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/BaseParserExtensionActivator.java index 7c257f0860..617d2e9538 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/BaseParserExtensionActivator.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/BaseParserExtensionActivator.java @@ -79,7 +79,7 @@ import org.opendaylight.protocol.pcep.parser.subobject.XROIpv4PrefixSubobjectPar import org.opendaylight.protocol.pcep.parser.subobject.XROIpv6PrefixSubobjectParser; import org.opendaylight.protocol.pcep.parser.subobject.XROPathKey128SubobjectParser; import org.opendaylight.protocol.pcep.parser.subobject.XROPathKey32SubobjectParser; -import org.opendaylight.protocol.pcep.parser.subobject.XROSRLGSubobjectParser; +import org.opendaylight.protocol.pcep.parser.subobject.XROSrlgSubobjectParser; import org.opendaylight.protocol.pcep.parser.subobject.XROUnnumberedInterfaceSubobjectParser; import org.opendaylight.protocol.pcep.parser.tlv.NoPathVectorTlvParser; import org.opendaylight.protocol.pcep.parser.tlv.OFListTlvParser; @@ -413,8 +413,8 @@ public final class BaseParserExtensionActivator extends AbstractPCEPExtensionPro regs.add(context.registerXROSubobjectParser(XROAsNumberSubobjectParser.TYPE, asNumberParser)); regs.add(context.registerXROSubobjectSerializer(AsNumberCase.class, asNumberParser)); - final XROSRLGSubobjectParser srlgParser = new XROSRLGSubobjectParser(); - regs.add(context.registerXROSubobjectParser(XROSRLGSubobjectParser.TYPE, srlgParser)); + final XROSrlgSubobjectParser srlgParser = new XROSrlgSubobjectParser(); + regs.add(context.registerXROSubobjectParser(XROSrlgSubobjectParser.TYPE, srlgParser)); regs.add(context.registerXROSubobjectSerializer(SrlgCase.class, srlgParser)); final XROUnnumberedInterfaceSubobjectParser unnumberedParser = new XROUnnumberedInterfaceSubobjectParser(); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPCloseMessageParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPCloseMessageParser.java index 39903529b5..118799990d 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPCloseMessageParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPCloseMessageParser.java @@ -25,7 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.close.object.CClose; /** - * Parser for {@link CloseMessage} + * Parser for {@link CloseMessage}. */ public class PCEPCloseMessageParser extends AbstractMessageParser { @@ -37,7 +37,8 @@ public class PCEPCloseMessageParser extends AbstractMessageParser { @Override public void serializeMessage(final Message message, final ByteBuf out) { - Preconditions.checkArgument(message instanceof CloseMessage, "Wrong instance of Message. Passed instance of %s. Need CloseMessage.", message.getClass()); + Preconditions.checkArgument(message instanceof CloseMessage, + "Wrong instance of Message. Passed instance of %s. Need CloseMessage.", message.getClass()); final CCloseMessage close = ((CloseMessage) message).getCCloseMessage(); Preconditions.checkArgument(close.getCClose() != null, "Close Object must be present in Close Message."); final ByteBuf buffer = Unpooled.buffer(); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPErrorMessageParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPErrorMessageParser.java index ae2b972be7..b8edf3fff2 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPErrorMessageParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPErrorMessageParser.java @@ -39,7 +39,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.rp.object.Rp; /** - * Parser for {@link PcerrMessage} + * Parser for {@link PcerrMessage}. */ public class PCEPErrorMessageParser extends AbstractMessageParser { @@ -51,9 +51,12 @@ public class PCEPErrorMessageParser extends AbstractMessageParser { @Override public void serializeMessage(final Message message, final ByteBuf out) { - Preconditions.checkArgument(message instanceof PcerrMessage, "Wrong instance of Message. Passed instance of %s. Need PcerrMessage.", message.getClass()); - final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcerr.message.PcerrMessage err = ((PcerrMessage) message).getPcerrMessage(); - Preconditions.checkArgument(err.getErrors() != null && !err.getErrors().isEmpty(), "Errors should not be empty."); + Preconditions.checkArgument(message instanceof PcerrMessage, + "Wrong instance of Message. Passed instance of %s. Need PcerrMessage.", message.getClass()); + final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcerr.message + .PcerrMessage err = ((PcerrMessage) message).getPcerrMessage(); + Preconditions.checkArgument(err.getErrors() != null && !err.getErrors().isEmpty(), + "Errors should not be empty."); final ByteBuf buffer = Unpooled.buffer(); serializeCases(err, buffer); for (final Errors e : err.getErrors()) { @@ -69,7 +72,9 @@ public class PCEPErrorMessageParser extends AbstractMessageParser { /** * If needed, subclasses can override this method. */ - protected void serializeCases(final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcerr.message.PcerrMessage err, final ByteBuf buffer) { + protected void serializeCases( + final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcerr.message + .PcerrMessage err, final ByteBuf buffer) { if (err.getErrorType() instanceof RequestCase) { final List rps = ((RequestCase) err.getErrorType()).getRequest().getRps(); for (final Rps r : rps) { @@ -79,14 +84,15 @@ public class PCEPErrorMessageParser extends AbstractMessageParser { } @Override - protected PcerrMessage validate(final List objects, final List errors) throws PCEPDeserializerException { + protected PcerrMessage validate(final List objects, final List errors) + throws PCEPDeserializerException { Preconditions.checkArgument(objects != null, "Passed list can't be null."); if (objects.isEmpty()) { throw new PCEPDeserializerException("Error message is empty."); } final List requestParameters = new ArrayList<>(); final List errorObjects = new ArrayList<>(); - final PcerrMessageBuilder b = new PcerrMessageBuilder(); + final PcerrMessageBuilder msgBuilder = new PcerrMessageBuilder(); Object obj = objects.get(0); State state = State.INIT; @@ -111,9 +117,10 @@ public class PCEPErrorMessageParser extends AbstractMessageParser { while (!objects.isEmpty() && !state.equals(State.END)) { obj = objects.get(0); if (obj instanceof UnknownObject) { - return new PcerrBuilder().setPcerrMessage(b.setErrors(((UnknownObject) obj).getErrors()).build()).build(); + return new PcerrBuilder() + .setPcerrMessage(msgBuilder.setErrors(((UnknownObject) obj).getErrors()).build()).build(); } - state = insertObject(state, errorObjects, obj, requestParameters, b); + state = insertObject(state, errorObjects, obj, requestParameters, msgBuilder); if (!state.equals(State.END)) { objects.remove(0); } @@ -125,43 +132,44 @@ public class PCEPErrorMessageParser extends AbstractMessageParser { throw new PCEPDeserializerException("Unprocessed Objects: " + objects); } if (!requestParameters.isEmpty()) { - b.setErrorType(new RequestCaseBuilder().setRequest(new RequestBuilder().setRps(requestParameters).build()).build()); + msgBuilder.setErrorType(new RequestCaseBuilder() + .setRequest(new RequestBuilder().setRps(requestParameters).build()).build()); } - return new PcerrBuilder().setPcerrMessage(b.setErrors(errorObjects).build()).build(); + return new PcerrBuilder().setPcerrMessage(msgBuilder.setErrors(errorObjects).build()).build(); } private static State insertObject(final State state, final List errorObjects, final Object obj, - final List requestParameters, final PcerrMessageBuilder b) { + final List requestParameters, final PcerrMessageBuilder msgBuilder) { switch (state) { - case RP_IN: + case RP_IN: if (obj instanceof Rp) { final Rp o = (Rp) obj; requestParameters.add(new RpsBuilder().setRp(o).build()); return State.RP_IN; } - // fall-through + // fallthrough case ERROR_IN: if (obj instanceof ErrorObject) { final ErrorObject o = (ErrorObject) obj; errorObjects.add(new ErrorsBuilder().setErrorObject(o).build()); return State.ERROR_IN; } - // fall-through + // fallthrough case OPEN: if (obj instanceof Open) { - b.setErrorType(new SessionCaseBuilder().setSession(new SessionBuilder().setOpen((Open) obj).build()).build()); + msgBuilder.setErrorType( + new SessionCaseBuilder().setSession(new SessionBuilder().setOpen((Open) obj).build()).build()); return State.OPEN_IN; } - // fall-through + // fallthrough case ERROR: if (obj instanceof ErrorObject) { final ErrorObject o = (ErrorObject) obj; errorObjects.add(new ErrorsBuilder().setErrorObject(o).build()); return State.ERROR; } - // fall-through + // fallthrough case OPEN_IN: - // fall-through case END: return State.END; default: diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPKeepAliveMessageParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPKeepAliveMessageParser.java index 675bc57a67..50ab7092cf 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPKeepAliveMessageParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPKeepAliveMessageParser.java @@ -25,10 +25,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.keepalive.message.KeepaliveMessageBuilder; /** - * Parser for {@link KeepaliveMessage} + * Parser for {@link KeepaliveMessage}. */ public class PCEPKeepAliveMessageParser extends AbstractMessageParser { - private static final KeepaliveMessage MESSAGE = new KeepaliveBuilder().setKeepaliveMessage(new KeepaliveMessageBuilder().build()).build(); + private static final KeepaliveMessage MESSAGE = new KeepaliveBuilder() + .setKeepaliveMessage(new KeepaliveMessageBuilder().build()).build(); public static final int TYPE = 2; public PCEPKeepAliveMessageParser(final ObjectRegistry registry) { @@ -37,12 +38,14 @@ public class PCEPKeepAliveMessageParser extends AbstractMessageParser { @Override public void serializeMessage(final Message message, final ByteBuf out) { - Preconditions.checkArgument(message instanceof KeepaliveMessage, "Wrong instance of Message. Passed instance of %s. Need KeepaliveMessage.", message.getClass()); + Preconditions.checkArgument(message instanceof KeepaliveMessage, + "Wrong instance of Message. Passed instance of %s. Need KeepaliveMessage.", message.getClass()); MessageUtil.formatMessage(TYPE, Unpooled.EMPTY_BUFFER, out); } @Override - protected KeepaliveMessage validate(final List objects, final List errors) throws PCEPDeserializerException { + protected KeepaliveMessage validate(final List objects, final List errors) + throws PCEPDeserializerException { if (objects != null && !objects.isEmpty()) { throw new PCEPDeserializerException("Keepalive message should not contain any objects."); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPMonitoringReplyMessageParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPMonitoringReplyMessageParser.java index d926ddfc4c..886b20023a 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPMonitoringReplyMessageParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPMonitoringReplyMessageParser.java @@ -39,7 +39,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ /** - * Parser for {@link Pcmonrep} + * Parser for {@link Pcmonrep}. * @see Path Monitoring Replay Message */ public class PCEPMonitoringReplyMessageParser extends AbstractMessageParser { @@ -52,7 +52,8 @@ public class PCEPMonitoringReplyMessageParser extends AbstractMessageParser { @Override public void serializeMessage(final Message message, final ByteBuf buffer) { - Preconditions.checkArgument(message instanceof Pcmonrep, "Wrong instance of Message. Passed instance of %s. Need Pcmonrep.", message.getClass()); + Preconditions.checkArgument(message instanceof Pcmonrep, + "Wrong instance of Message. Passed instance of %s. Need Pcmonrep.", message.getClass()); final PcmonrepMessage monRepMsg = ((Pcmonrep) message).getPcmonrepMessage(); Preconditions.checkArgument(monRepMsg.getMonitoring() != null, "MONITORING object is mandatory."); final ByteBuf body = Unpooled.buffer(); @@ -90,7 +91,8 @@ public class PCEPMonitoringReplyMessageParser extends AbstractMessageParser { } @Override - protected Message validate(final List objects, final List errors) throws PCEPDeserializerException { + protected Message validate(final List objects, final List errors) + throws PCEPDeserializerException { Preconditions.checkArgument(objects != null, "Passed list can't be null."); if (objects.isEmpty()) { throw new PCEPDeserializerException("Pcmonrep message cannot be empty."); @@ -99,8 +101,7 @@ public class PCEPMonitoringReplyMessageParser extends AbstractMessageParser { errors.add(createErrorMsg(PCEPErrors.MONITORING_OBJECT_MISSING, Optional.empty())); return null; } - final PcmonrepMessageBuilder builder = new PcmonrepMessageBuilder(); - builder.setMonitoring((Monitoring) objects.get(0)); + final PcmonrepMessageBuilder builder = new PcmonrepMessageBuilder().setMonitoring((Monitoring) objects.get(0)); objects.remove(0); if (!objects.isEmpty() && objects.get(0) instanceof PccIdReq) { builder.setPccIdReq((PccIdReq) objects.get(0)); @@ -134,7 +135,8 @@ public class PCEPMonitoringReplyMessageParser extends AbstractMessageParser { } } if (!specificMetrics.isEmpty()) { - builder.setMonitoringMetricsList(new SpecificMetricsListBuilder().setSpecificMetrics(specificMetrics).build()); + builder.setMonitoringMetricsList( + new SpecificMetricsListBuilder().setSpecificMetrics(specificMetrics).build()); } } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPMonitoringRequestMessageParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPMonitoringRequestMessageParser.java index a2c08782f4..dc9a86e651 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPMonitoringRequestMessageParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPMonitoringRequestMessageParser.java @@ -28,7 +28,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcreq.message.pcreq.message.Svec; /** - * Parser for {@link Pcmonreq} + * Parser for {@link Pcmonreq}. * @see Monitoring Request Message */ public class PCEPMonitoringRequestMessageParser extends PCEPRequestMessageParser { @@ -41,7 +41,8 @@ public class PCEPMonitoringRequestMessageParser extends PCEPRequestMessageParser @Override public void serializeMessage(final Message message, final ByteBuf out) { - Preconditions.checkArgument(message instanceof Pcmonreq, "Wrong instance of Message. Passed instance of %s. Need Pcmonreq.", message.getClass()); + Preconditions.checkArgument(message instanceof Pcmonreq, + "Wrong instance of Message. Passed instance of %s. Need Pcmonreq.", message.getClass()); final PcreqMessage msg = ((Pcmonreq) message).getPcreqMessage(); Preconditions.checkArgument(msg.getMonitoringRequest() != null, "MONITORING object MUST be present."); final ByteBuf buffer = Unpooled.buffer(); @@ -56,7 +57,8 @@ public class PCEPMonitoringRequestMessageParser extends PCEPRequestMessageParser } @Override - protected Message validate(final List objects, final List errors) throws PCEPDeserializerException { + protected Message validate(final List objects, final List errors) + throws PCEPDeserializerException { Preconditions.checkArgument(objects != null, "Passed list can't be null."); if (objects.isEmpty()) { throw new PCEPDeserializerException("Pcmonreq message cannot be empty."); @@ -65,8 +67,7 @@ public class PCEPMonitoringRequestMessageParser extends PCEPRequestMessageParser if (monReq == null) { errors.add(createErrorMsg(PCEPErrors.MONITORING_OBJECT_MISSING, Optional.empty())); } - final PcreqMessageBuilder mBuilder = new PcreqMessageBuilder(); - mBuilder.setMonitoringRequest(monReq); + final PcreqMessageBuilder mBuilder = new PcreqMessageBuilder().setMonitoringRequest(monReq); final List svecs = getSvecs(objects); if (!svecs.isEmpty()) { mBuilder.setSvec(svecs); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPNotificationMessageParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPNotificationMessageParser.java index ccf6e2cb3e..f0eda243e9 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPNotificationMessageParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPNotificationMessageParser.java @@ -31,7 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.rp.object.Rp; /** - * Parser for {@link PcntfMessage} + * Parser for {@link PcntfMessage}. */ public class PCEPNotificationMessageParser extends AbstractMessageParser { @@ -43,7 +43,8 @@ public class PCEPNotificationMessageParser extends AbstractMessageParser { @Override public void serializeMessage(final Message message, final ByteBuf out) { - Preconditions.checkArgument(message instanceof PcntfMessage, "Wrong instance of Message. Passed instance of %s. Need PcntfMessage.", message.getClass()); + Preconditions.checkArgument(message instanceof PcntfMessage, + "Wrong instance of Message. Passed instance of %s. Need PcntfMessage.", message.getClass()); final ByteBuf buffer = Unpooled.buffer(); for (final Notifications n : ((PcntfMessage) message).getPcntfMessage().getNotifications()) { if (n.getRps() != null) { @@ -51,8 +52,10 @@ public class PCEPNotificationMessageParser extends AbstractMessageParser { serializeObject(rps.getRp(), buffer); } } - Preconditions.checkArgument(n.getNotifications() != null && !n.getNotifications().isEmpty(), "Message must contain at least one notification object"); - for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcntf.message.pcntf.message.notifications.Notifications not : n.getNotifications()) { + Preconditions.checkArgument(n.getNotifications() != null && !n.getNotifications().isEmpty(), + "Message must contain at least one notification object"); + for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcntf + .message.pcntf.message.notifications.Notifications not : n.getNotifications()) { serializeObject(not.getCNotification(), buffer); } } @@ -60,7 +63,8 @@ public class PCEPNotificationMessageParser extends AbstractMessageParser { } @Override - protected Message validate(final List objects, final List errors) throws PCEPDeserializerException { + protected Message validate(final List objects, final List errors) + throws PCEPDeserializerException { Preconditions.checkArgument(objects != null, "Passed list can't be null."); if (objects.isEmpty()) { throw new PCEPDeserializerException("Notification message cannot be empty."); @@ -81,12 +85,14 @@ public class PCEPNotificationMessageParser extends AbstractMessageParser { if (!objects.isEmpty()) { throw new PCEPDeserializerException("Unprocessed Objects: " + objects); } - return new PcntfBuilder().setPcntfMessage(new PcntfMessageBuilder().setNotifications(compositeNotifications).build()).build(); + return new PcntfBuilder() + .setPcntfMessage(new PcntfMessageBuilder().setNotifications(compositeNotifications).build()).build(); } private static Notifications getValidNotificationComposite(final List objects, final List errors) { final List requestParameters = new ArrayList<>(); - final List notifications = new ArrayList<>(); + final List notifications = new ArrayList<>(); Object obj; State state = State.INIT; @@ -104,11 +110,15 @@ public class PCEPNotificationMessageParser extends AbstractMessageParser { return null; } - return new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcntf.message.pcntf.message.NotificationsBuilder().setNotifications( - notifications).setRps(requestParameters).build(); + return new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcntf + .message.pcntf.message.NotificationsBuilder().setNotifications(notifications) + .setRps(requestParameters).build(); } - private static State insertObject(final State state, final Object obj, final List errors, final List requestParameters, final List notifications) { + private static State insertObject(final State state, final Object obj, final List errors, + final List requestParameters, + final List notifications) { switch (state) { case INIT: if (obj instanceof Rp) { @@ -120,16 +130,15 @@ public class PCEPNotificationMessageParser extends AbstractMessageParser { requestParameters.add(new RpsBuilder().setRp(rp).build()); return State.INIT; } - // fall-through + // fallthrough case RP_IN: if (obj instanceof CNotification) { final CNotification n = (CNotification) obj; notifications.add(new NotificationsBuilder().setCNotification(n).build()); return State.RP_IN; } - // fall-through + // fallthrough case NOTIFICATION_IN: - // fall-through case END: return State.END; default: diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPOpenMessageParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPOpenMessageParser.java index de93e87deb..ea7ebcae04 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPOpenMessageParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPOpenMessageParser.java @@ -23,7 +23,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.object.Open; /** - * Parser for {@link OpenMessage} + * Parser for {@link OpenMessage}. */ public class PCEPOpenMessageParser extends AbstractMessageParser { @@ -35,8 +35,10 @@ public class PCEPOpenMessageParser extends AbstractMessageParser { @Override public void serializeMessage(final Message message, final ByteBuf out) { - Preconditions.checkArgument(message instanceof OpenMessage, "Wrong instance of Message. Passed instance of %s. Need OpenMessage.", message.getClass()); - final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.message.OpenMessage open = ((OpenMessage) message).getOpenMessage(); + Preconditions.checkArgument(message instanceof OpenMessage, + "Wrong instance of Message. Passed instance of %s. Need OpenMessage.", message.getClass()); + final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.message + .OpenMessage open = ((OpenMessage) message).getOpenMessage(); Preconditions.checkArgument(open.getOpen() != null, "Open Object must be present in Open Message."); final ByteBuf buffer = Unpooled.buffer(); serializeObject(open.getOpen(), buffer); @@ -52,8 +54,8 @@ public class PCEPOpenMessageParser extends AbstractMessageParser { throw new PCEPDeserializerException("Open message doesn't contain OPEN object."); } - final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.message.OpenMessage msg = new OpenMessageBuilder().setOpen( - (Open) objects.get(0)).build(); + final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.message + .OpenMessage msg = new OpenMessageBuilder().setOpen((Open) objects.get(0)).build(); objects.remove(0); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPReplyMessageParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPReplyMessageParser.java index 90cca4888b..8e8fa94fbb 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPReplyMessageParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPReplyMessageParser.java @@ -35,6 +35,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.of.object.Of; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcc.id.req.object.PccIdReq; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pce.id.object.PceId; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcrep.message.PcrepMessage; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcrep.message.PcrepMessageBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcrep.message.pcrep.message.Replies; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcrep.message.pcrep.message.RepliesBuilder; @@ -51,7 +52,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.vendor.information.objects.VendorInformationObject; /** - * Parser for {@link Pcrep} + * Parser for {@link Pcrep}. */ public class PCEPReplyMessageParser extends AbstractMessageParser { @@ -63,9 +64,11 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { @Override public void serializeMessage(final Message message, final ByteBuf out) { - Preconditions.checkArgument(message instanceof Pcrep, "Wrong instance of Message. Passed instance of %s. Need Pcrep.", message.getClass()); - final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcrep.message.PcrepMessage repMsg = ((Pcrep) message).getPcrepMessage(); - Preconditions.checkArgument(repMsg.getReplies() != null && !repMsg.getReplies().isEmpty(), "Replies cannot be null or empty."); + Preconditions.checkArgument(message instanceof Pcrep, + "Wrong instance of Message. Passed instance of %s. Need Pcrep.", message.getClass()); + final PcrepMessage repMsg = ((Pcrep) message).getPcrepMessage(); + Preconditions.checkArgument(repMsg.getReplies() != null && !repMsg.getReplies().isEmpty(), + "Replies cannot be null or empty."); final ByteBuf buffer = Unpooled.buffer(); for (final Replies reply : repMsg.getReplies()) { Preconditions.checkArgument(reply.getRp() != null, "Reply must contain RP object."); @@ -91,26 +94,26 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { serializeMonitoringMetrics(reply, buffer); } - private void serializeFailure(final FailureCase f, final ByteBuf buffer) { - if (f == null) { + private void serializeFailure(final FailureCase failure, final ByteBuf buffer) { + if (failure == null) { return; } - serializeObject(f.getNoPath(), buffer); - serializeObject(f.getLspa(), buffer); - serializeObject(f.getBandwidth(), buffer); - if (f.getMetrics() != null) { - for (final Metrics m : f.getMetrics()) { + serializeObject(failure.getNoPath(), buffer); + serializeObject(failure.getLspa(), buffer); + serializeObject(failure.getBandwidth(), buffer); + if (failure.getMetrics() != null) { + for (final Metrics m : failure.getMetrics()) { serializeObject(m.getMetric(), buffer); } } - serializeObject(f.getIro(), buffer); + serializeObject(failure.getIro(), buffer); } - private void serializeSuccess(final SuccessCase s, final ByteBuf buffer) { - if (s == null || s.getSuccess() == null) { + private void serializeSuccess(final SuccessCase success, final ByteBuf buffer) { + if (success == null || success.getSuccess() == null) { return; } - for (final Paths p : s.getSuccess().getPaths()) { + for (final Paths p : success.getSuccess().getPaths()) { serializeObject(p.getEro(), buffer); serializeObject(p.getLspa(), buffer); serializeObject(p.getOf(), buffer); @@ -122,7 +125,7 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { } serializeObject(p.getIro(), buffer); } - serializeVendorInformationObjects(s.getSuccess().getVendorInformationObject(), buffer); + serializeVendorInformationObjects(success.getSuccess().getVendorInformationObject(), buffer); } private void serializeMonitoring(final Replies reply, final ByteBuf buffer) { @@ -164,7 +167,8 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { return new PcrepBuilder().setPcrepMessage(new PcrepMessageBuilder().setReplies(replies).build()).build(); } - protected Replies getValidReply(final List objects, final List errors) throws PCEPDeserializerException { + protected Replies getValidReply(final List objects, final List errors) + throws PCEPDeserializerException { Object object = objects.remove(0); if (!(object instanceof Rp)) { errors.add(createErrorMsg(PCEPErrors.RP_MISSING, Optional.empty())); @@ -206,8 +210,7 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { private Result handleNoPath(final NoPath noPath, final List objects) { objects.remove(0); - final FailureCaseBuilder builder = new FailureCaseBuilder(); - builder.setNoPath(noPath); + final FailureCaseBuilder builder = new FailureCaseBuilder().setNoPath(noPath); while (!objects.isEmpty() && !(objects.get(0) instanceof PceId)) { this.parseAttributes(builder, objects); } @@ -258,27 +261,26 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { builder.setLspa((Lspa) obj); return State.LSPA_IN; } - // fall-through + // fallthrough case LSPA_IN: if (obj instanceof Bandwidth) { builder.setBandwidth((Bandwidth) obj); return State.BANDWIDTH_IN; } - // fall-through + // fallthrough case BANDWIDTH_IN: if (obj instanceof Metric) { pathMetrics.add(new MetricsBuilder().setMetric((Metric) obj).build()); return State.BANDWIDTH_IN; } - // fall-through + // fallthrough case METRIC_IN: if (obj instanceof Iro) { builder.setIro((Iro) obj); return State.IRO_IN; } - // fall-through + // fallthrough case IRO_IN: - // fall-through case END: return State.END; default: @@ -286,23 +288,6 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { } } - protected void parsePath(final PathsBuilder builder, final List objects) { - final List pathMetrics = new ArrayList<>(); - - Object obj; - State state = State.INIT; - while (!objects.isEmpty() && !state.equals(State.END)) { - obj = objects.get(0); - state = insertObject(state, obj, builder, pathMetrics); - if (!state.equals(State.END)) { - objects.remove(0); - } - } - if (!pathMetrics.isEmpty()) { - builder.setMetrics(pathMetrics); - } - } - private static State insertObject(final State state, final Object obj, final PathsBuilder builder, final List pathMetrics) { switch (state) { @@ -311,33 +296,32 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { builder.setLspa((Lspa) obj); return State.LSPA_IN; } - // fall-through + // fallthrough case LSPA_IN: if (obj instanceof Of) { builder.setOf((Of) obj); return State.OF_IN; } - // fall-through + // fallthrough case OF_IN: if (obj instanceof Bandwidth) { builder.setBandwidth((Bandwidth) obj); return State.BANDWIDTH_IN; } - // fall-through + // fallthrough case BANDWIDTH_IN: if (obj instanceof Metric) { pathMetrics.add(new MetricsBuilder().setMetric((Metric) obj).build()); return State.BANDWIDTH_IN; } - // fall-through + // fallthrough case METRIC_IN: if (obj instanceof Iro) { builder.setIro((Iro) obj); return State.IRO_IN; } - // fall-through + // fallthrough case IRO_IN: - // fall-through case END: return State.END; default: @@ -345,6 +329,23 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { } } + protected void parsePath(final PathsBuilder builder, final List objects) { + final List pathMetrics = new ArrayList<>(); + + Object obj; + State state = State.INIT; + while (!objects.isEmpty() && !state.equals(State.END)) { + obj = objects.get(0); + state = insertObject(state, obj, builder, pathMetrics); + if (!state.equals(State.END)) { + objects.remove(0); + } + } + if (!pathMetrics.isEmpty()) { + builder.setMetrics(pathMetrics); + } + } + private enum State { INIT, LSPA_IN, OF_IN, BANDWIDTH_IN, METRIC_IN, IRO_IN, END } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPRequestMessageParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPRequestMessageParser.java index 2fdef46dd9..602446614a 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPRequestMessageParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPRequestMessageParser.java @@ -83,7 +83,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.vendor.information.objects.VendorInformationObject; /** - * Parser for {@link Pcreq} + * Parser for {@link Pcreq}. */ public class PCEPRequestMessageParser extends AbstractMessageParser { @@ -95,9 +95,11 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { @Override public void serializeMessage(final Message message, final ByteBuf out) { - Preconditions.checkArgument(message instanceof Pcreq, "Wrong instance of Message. Passed instance of %s. Need Pcreq.", message.getClass()); + Preconditions.checkArgument(message instanceof Pcreq, + "Wrong instance of Message. Passed instance of %s. Need Pcreq.", message.getClass()); final PcreqMessage msg = ((Pcreq) message).getPcreqMessage(); - Preconditions.checkArgument(msg.getRequests() != null && !msg.getRequests().isEmpty(), "Requests cannot be null or empty."); + Preconditions.checkArgument(msg.getRequests() != null && !msg.getRequests().isEmpty(), + "Requests cannot be null or empty."); final ByteBuf buffer = Unpooled.buffer(); if (msg.getMonitoringRequest() != null) { serializeMonitoringRequest(msg.getMonitoringRequest(), buffer); @@ -135,7 +137,8 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { serializeObject(s.getGc(), buffer); serializeObject(s.getXro(), buffer); if (s.getMetric() != null) { - for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcreq.message.pcreq.message.svec.Metric m : s.getMetric()) { + for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcreq + .message.pcreq.message.svec.Metric m : s.getMetric()) { serializeObject(m.getMetric(), buffer); } } @@ -217,13 +220,13 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { } @Override - protected Message validate(final List objects, final List errors) throws PCEPDeserializerException { + protected Message validate(final List objects, final List errors) + throws PCEPDeserializerException { Preconditions.checkArgument(objects != null, "Passed list can't be null."); if (objects.isEmpty()) { throw new PCEPDeserializerException("Pcrep message cannot be empty."); } - final PcreqMessageBuilder mBuilder = new PcreqMessageBuilder(); - mBuilder.setMonitoringRequest(getMonitoring(objects)); + final PcreqMessageBuilder mBuilder = new PcreqMessageBuilder().setMonitoringRequest(getMonitoring(objects)); final List svecs = getSvecs(objects); if (!svecs.isEmpty()) { mBuilder.setSvec(svecs); @@ -276,7 +279,8 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { } // expansion if (rpObj.isPathKey() && objects.get(0) instanceof PathKey) { - rBuilder.setPathKeyExpansion(new PathKeyExpansionBuilder().setPathKey((PathKey) objects.get(0)).build()); + rBuilder.setPathKeyExpansion( + new PathKeyExpansionBuilder().setPathKey((PathKey) objects.get(0)).build()); } if (objects.isEmpty() || !(objects.get(0) instanceof EndpointsObj)) { @@ -332,10 +336,10 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { builder.setVendorInformationObject(viObjects); } - if (rp.isReoptimization() - && builder.getBandwidth() != null + if (rp.isReoptimization() && builder.getBandwidth() != null && !builder.getReportedRoute().getReoptimizationBandwidth().getBandwidth().equals( - new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts.rev131125.Bandwidth(new byte[] { 0 })) + new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network + .concepts.rev131125.Bandwidth(new byte[] { 0 })) && builder.getReportedRoute().getRro() == null) { errors.add(createErrorMsg(PCEPErrors.RRO_MISSING, Optional.of(rp))); return null; @@ -365,61 +369,61 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { } return P2PState.REPORTED_IN; } - // fall-through + // fallthrough case REPORTED_IN: if (obj instanceof VendorInformationObject) { viObjects.add((VendorInformationObject) obj); return P2PState.REPORTED_IN; } - // fall-through + // fallthrough case VENDOR_INFO_LIST: if (obj instanceof LoadBalancing) { builder.setLoadBalancing((LoadBalancing) obj); return P2PState.LOAD_BIN; } - // fall-through + // fallthrough case LOAD_BIN: if (obj instanceof Lspa) { builder.setLspa((Lspa) obj); return P2PState.LSPA_IN; } - // fall-through + // fallthrough case LSPA_IN: if (obj instanceof Bandwidth) { builder.setBandwidth((Bandwidth) obj); return P2PState.BANDWIDTH_IN; } - // fall-through + // fallthrough case BANDWIDTH_IN: if (obj instanceof Metric) { metrics.add(new MetricsBuilder().setMetric((Metric) obj).build()); return P2PState.BANDWIDTH_IN; } - // fall-through + // fallthrough case METRIC_IN: if (obj instanceof Iro) { builder.setIro((Iro) obj); return P2PState.IRO_IN; } - // fall-through + // fallthrough case IRO_IN: if (obj instanceof Rro) { builder.setRro((Rro) obj); return P2PState.RRO_IN; } - // fall-through + // fallthrough case RRO_IN: if (obj instanceof Xro) { builder.setXro((Xro) obj); return P2PState.XRO_IN; } - // fall-through + // fallthrough case XRO_IN: if (obj instanceof Of) { builder.setOf((Of) obj); return P2PState.OF_IN; } - // fall-through + // fallthrough case OF_IN: if (obj instanceof ClassType) { final ClassType classType = (ClassType) obj; @@ -430,9 +434,8 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { } return P2PState.CT_IN; } - // fall-through + // fallthrough case CT_IN: - // fall-through case END: return P2PState.END; default: @@ -440,15 +443,66 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { } } + private static SvecState insertP2PObject(final SvecState state, final Object obj, final SvecBuilder builder, + final List metrics, final List viObjects) { + switch (state) { + case INIT: + if (obj instanceof Of) { + builder.setOf((Of) obj); + return SvecState.OF_IN; + } + // fallthrough + case OF_IN: + if (obj instanceof Gc) { + builder.setGc((Gc) obj); + return SvecState.GC_IN; + } + // fallthrough + case GC_IN: + if (obj instanceof Xro) { + builder.setXro((Xro) obj); + return SvecState.XRO_IN; + } + // fallthrough + case XRO_IN: + if (obj instanceof Metric) { + metrics.add(new MetricsBuilder().setMetric((Metric) obj).build()); + return SvecState.XRO_IN; + } + // fallthrough + case METRIC_IN: + if (obj instanceof VendorInformationObject) { + viObjects.add((VendorInformationObject) obj); + return SvecState.METRIC_IN; + } + // fallthrough + case VENDOR_INFO: + case END: + return SvecState.END; + default: + return state; + } + } + private enum P2PState { - INIT, REPORTED_IN, VENDOR_INFO_LIST, LOAD_BIN, LSPA_IN, BANDWIDTH_IN, METRIC_IN, IRO_IN, RRO_IN, XRO_IN, OF_IN, CT_IN, END + INIT, + REPORTED_IN, + VENDOR_INFO_LIST, + LOAD_BIN, LSPA_IN, + BANDWIDTH_IN, + METRIC_IN, + IRO_IN, + RRO_IN, + XRO_IN, + OF_IN, + CT_IN, + END } - protected SegmentComputation getP2MPSegmentComputation(final List objects, - final List errors, - final Rp rp) { - final List metrics = - new ArrayList<>(); + protected SegmentComputation getP2MPSegmentComputation(final List objects, final List errors, + final Rp rp) { + final List metrics = new ArrayList<>(); final P2mpBuilder builder = new P2mpBuilder(); final List epRros = new ArrayList<>(); @@ -493,13 +547,11 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { return true; } - private static P2MPState insertP2MPObject(final P2MPState p2MPState, - final List objects, - final P2mpBuilder builder, - final List epRros, - final List metrics, - final List errors, - final Rp rp) { + private static P2MPState insertP2MPObject(final P2MPState p2MPState, final List objects, + final P2mpBuilder builder, final List epRros, + final List metrics, + final List errors, final Rp rp) { final Object obj = objects.get(0); switch (p2MPState) { case RP: @@ -513,7 +565,7 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { epRros.add(rroPairBuilder.setRros(new ArrayList<>()).build()); return P2MPState.ENDPOINT; } - // fall-through + // fallthrough case ENDPOINT: if (obj instanceof Rro || obj instanceof Srro) { if (obj.isProcessingRule()) { @@ -534,7 +586,7 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { } return P2MPState.ENDPOINT; } - // fall-through + // fallthrough case RRO_SRRO: if (obj instanceof ReoptimizationBandwidth) { final int lastIndex = epRros.size() - 1; @@ -545,7 +597,7 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { .build()); return P2MPState.BANDWIDTH; } - // fall-through + // fallthrough case BANDWIDTH: if (obj instanceof EndpointsObj) { return P2MPState.RP; @@ -554,25 +606,25 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { builder.setOf((Of) obj); return P2MPState.OF_IN; } - // fall-through + // fallthrough case OF_IN: if (obj instanceof Lspa) { builder.setLspa((Lspa) obj); return P2MPState.LSPA_IN; } - // fall-through + // fallthrough case LSPA_IN: if (obj instanceof Bandwidth) { builder.setBandwidth((Bandwidth) obj); return P2MPState.BANDWIDTH_IN; } - // fall-through + // fallthrough case BANDWIDTH_IN: if (obj instanceof Metric) { metrics.add(new MetricBuilder().setMetric((Metric) obj).build()); return P2MPState.BANDWIDTH_IN; } - // fall-through + // fallthrough case METRIC_IN: if (obj instanceof Iro) { builder.setIroBncChoice(new IroCaseBuilder().setIro((Iro) obj).build()); @@ -588,17 +640,15 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { .setNonBranchNodeList((NonBranchNodeList) obj).build()).build()); return P2MPState.IRO_BNC_IN; } - // fall-through + // fallthrough case IRO_BNC_IN: if (obj instanceof LoadBalancing) { builder.setLoadBalancing((LoadBalancing) obj); return P2MPState.LOAD_BIN; } - // fall-through + // fallthrough case LOAD_BIN: - // fall-through case END: - // fall-through default: return P2MPState.END; } @@ -611,8 +661,10 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { private static Svec getValidSvec(final SvecBuilder builder, final List objects) { Preconditions.checkArgument(objects != null && !objects.isEmpty(), "Passed list can't be null or empty."); - if (objects.get(0) instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.svec.object.Svec) { - builder.setSvec((org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.svec.object.Svec) objects.get(0)); + if (objects.get(0) instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types + .rev181109.svec.object.Svec) { + builder.setSvec((org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109 + .svec.object.Svec) objects.get(0)); objects.remove(0); } else { return null; @@ -636,48 +688,6 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { return builder.build(); } - private static SvecState insertP2PObject(final SvecState state, final Object obj, final SvecBuilder builder, - final List metrics, final List viObjects) { - switch (state) { - case INIT: - if (obj instanceof Of) { - builder.setOf((Of) obj); - return SvecState.OF_IN; - } - // fall-through - case OF_IN: - if (obj instanceof Gc) { - builder.setGc((Gc) obj); - return SvecState.GC_IN; - } - // fall-through - case GC_IN: - if (obj instanceof Xro) { - builder.setXro((Xro) obj); - return SvecState.XRO_IN; - } - // fall-through - case XRO_IN: - if (obj instanceof Metric) { - metrics.add(new MetricsBuilder().setMetric((Metric) obj).build()); - return SvecState.XRO_IN; - } - // fall-through - case METRIC_IN: - if (obj instanceof VendorInformationObject) { - viObjects.add((VendorInformationObject) obj); - return SvecState.METRIC_IN; - } - // fall-through - case VENDOR_INFO: - // fall-through - case END: - return SvecState.END; - default: - return state; - } - } - private enum SvecState { INIT, OF_IN, GC_IN, XRO_IN, METRIC_IN, VENDOR_INFO, END } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPStartTLSMessageParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPStartTLSMessageParser.java index 3d37506f34..a7e4dad5c6 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPStartTLSMessageParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/message/PCEPStartTLSMessageParser.java @@ -32,12 +32,14 @@ public class PCEPStartTLSMessageParser extends AbstractMessageParser { @Override public void serializeMessage(final Message message, final ByteBuf out) { - Preconditions.checkArgument(message instanceof StartTlsMessage, "Wrong instance of Message. Passed instance of %s. Need StartTlsMessage.", message.getClass()); + Preconditions.checkArgument(message instanceof StartTlsMessage, + "Wrong instance of Message. Passed instance of %s. Need StartTlsMessage.", message.getClass()); MessageUtil.formatMessage(TYPE, Unpooled.EMPTY_BUFFER, out); } @Override - protected StartTlsMessage validate(final List objects, final List errors) throws PCEPDeserializerException { + protected StartTlsMessage validate(final List objects, final List errors) + throws PCEPDeserializerException { if (objects != null && !objects.isEmpty()) { throw new PCEPDeserializerException("StartTLS message should not contain any objects."); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractEROWithSubobjectsParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractEROWithSubobjectsParser.java index 8f521d058e..fda09f91d1 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractEROWithSubobjectsParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractEROWithSubobjectsParser.java @@ -42,12 +42,15 @@ public abstract class AbstractEROWithSubobjectsParser extends CommonObjectParser Preconditions.checkArgument(buffer != null, "Array of bytes is mandatory. Can't be null."); final List subs = new ArrayList<>(); while (buffer.isReadable()) { - final boolean loose = ((buffer.getUnsignedByte(buffer.readerIndex()) & (1 << Values.FIRST_BIT_OFFSET)) != 0) ? true : false; - final int type = (buffer.readUnsignedByte() & Values.BYTE_MAX_VALUE_BYTES) & ~(1 << Values.FIRST_BIT_OFFSET); + final boolean loose = ((buffer.getUnsignedByte(buffer.readerIndex()) & (1 << Values.FIRST_BIT_OFFSET)) != 0) + ? true + : false; + final int type = (buffer.readUnsignedByte() & Values.BYTE_MAX_VALUE_BYTES) + & ~(1 << Values.FIRST_BIT_OFFSET); final int length = buffer.readUnsignedByte() - HEADER_LENGTH; if (length > buffer.readableBytes()) { - throw new PCEPDeserializerException("Wrong length specified. Passed: " + length + "; Expected: <= " - + buffer.readableBytes()); + throw new PCEPDeserializerException( + "Wrong length specified. Passed: " + length + "; Expected: <= " + buffer.readableBytes()); } LOG.debug("Attempt to parse subobject from bytes: {}", ByteBufUtil.hexDump(buffer)); final Subobject sub = this.subobjReg.parseSubobject(type, buffer.readSlice(length), loose); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractPccIdReqObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractPccIdReqObjectParser.java index 3de64cd91e..2b3c421293 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractPccIdReqObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractPccIdReqObjectParser.java @@ -29,16 +29,19 @@ public abstract class AbstractPccIdReqObjectParser extends CommonObjectParser im @Override public void serializeObject(final Object object, final ByteBuf buffer) { - Preconditions.checkArgument(object instanceof PccIdReq, "Wrong instance of PCEPObject. Passed %s. Needed PccIdReqObject.", object.getClass()); + Preconditions.checkArgument(object instanceof PccIdReq, + "Wrong instance of PCEPObject. Passed %s. Needed PccIdReqObject.", object.getClass()); final PccIdReq pccIdReq = (PccIdReq) object; if (pccIdReq.getIpAddress().getIpv4AddressNoZone() != null) { final ByteBuf body = Unpooled.buffer(Ipv4Util.IP4_LENGTH); ByteBufWriteUtil.writeIpv4Address(pccIdReq.getIpAddress().getIpv4AddressNoZone(), body); - ObjectUtil.formatSubobject(getObjectType(), getObjectClass(), object.isProcessingRule(), object.isIgnore(), body, buffer); + ObjectUtil.formatSubobject(getObjectType(), getObjectClass(), object.isProcessingRule(), object.isIgnore(), + body, buffer); } else if (pccIdReq.getIpAddress().getIpv6AddressNoZone() != null) { final ByteBuf body = Unpooled.buffer(Ipv6Util.IPV6_LENGTH); ByteBufWriteUtil.writeIpv6Address(pccIdReq.getIpAddress().getIpv6AddressNoZone(), body); - ObjectUtil.formatSubobject(getObjectType(), getObjectClass(), object.isProcessingRule(), object.isIgnore(), body, buffer); + ObjectUtil.formatSubobject(getObjectType(), getObjectClass(), object.isProcessingRule(), object.isIgnore(), + body, buffer); } } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractRROWithSubobjectsParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractRROWithSubobjectsParser.java index 71faff15da..ff783fa388 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractRROWithSubobjectsParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractRROWithSubobjectsParser.java @@ -30,21 +30,22 @@ public abstract class AbstractRROWithSubobjectsParser extends CommonObjectParser private static final int HEADER_LENGTH = 2; - protected AbstractRROWithSubobjectsParser(final RROSubobjectRegistry subobjReg, - final int objectClass, final int objectType) { + protected AbstractRROWithSubobjectsParser(final RROSubobjectRegistry subobjReg, final int objectClass, + final int objectType) { super(objectClass, objectType); this.subobjReg = requireNonNull(subobjReg); } protected List parseSubobjects(final ByteBuf buffer) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); final List subs = new ArrayList<>(); while (buffer.isReadable()) { final int type = buffer.readUnsignedByte(); final int length = buffer.readUnsignedByte() - HEADER_LENGTH; if (length > buffer.readableBytes()) { - throw new PCEPDeserializerException("Wrong length specified. Passed: " + length + "; Expected: <= " - + buffer.readableBytes()); + throw new PCEPDeserializerException( + "Wrong length specified. Passed: " + length + "; Expected: <= " + buffer.readableBytes()); } LOG.debug("Attempt to parse subobject from bytes: {}", ByteBufUtil.hexDump(buffer)); final Subobject sub = this.subobjReg.parseSubobject(type, buffer.readSlice(length)); @@ -59,7 +60,8 @@ public abstract class AbstractRROWithSubobjectsParser extends CommonObjectParser } protected final void serializeSubobject(final List subobjects, final ByteBuf buffer) { - Preconditions.checkArgument(subobjects != null && !subobjects.isEmpty(), "RRO must contain at least one subobject."); + Preconditions.checkArgument(subobjects != null && !subobjects.isEmpty(), + "RRO must contain at least one subobject."); for (final Subobject subobject : subobjects) { this.subobjReg.serializeSubobject(subobject, buffer); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractVendorInformationObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractVendorInformationObjectParser.java index 689071552b..53a83eca77 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractVendorInformationObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/AbstractVendorInformationObjectParser.java @@ -27,7 +27,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.vendor.information.objects.VendorInformationObjectBuilder; public abstract class AbstractVendorInformationObjectParser extends CommonObjectParser - implements ObjectSerializer, EnterpriseSpecificInformationParser { + implements ObjectSerializer, EnterpriseSpecificInformationParser { public AbstractVendorInformationObjectParser(final int objectClass, final int objectType) { super(objectClass, objectType); @@ -35,7 +35,8 @@ public abstract class AbstractVendorInformationObjectParser extends CommonObject @Override public final Object parseObject(final ObjectHeader header, final ByteBuf buffer) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); final VendorInformationObjectBuilder builder = new VendorInformationObjectBuilder(); builder.setEnterpriseNumber(new EnterpriseNumber(getEnterpriseNumber())); builder.setEnterpriseSpecificInformation(parseEnterpriseSpecificInformation(buffer)); @@ -44,11 +45,14 @@ public abstract class AbstractVendorInformationObjectParser extends CommonObject @Override public final void serializeObject(final Object object, final ByteBuf buffer) { - Preconditions.checkArgument(object instanceof VendorInformationObject, "Wrong instance of PCEPObject. Passed %s. Needed VendorInformationObject.", object.getClass()); + Preconditions.checkArgument(object instanceof VendorInformationObject, + "Wrong instance of PCEPObject. Passed %s. Needed VendorInformationObject.", object.getClass()); final ByteBuf body = Unpooled.buffer(); writeUnsignedInt(getEnterpriseNumber().getValue(), body); - serializeEnterpriseSpecificInformation(((VendorInformationObject) object).getEnterpriseSpecificInformation(), body); - ObjectUtil.formatSubobject(VENDOR_INFORMATION_OBJECT_TYPE, VENDOR_INFORMATION_OBJECT_CLASS, object.isProcessingRule(), object.isIgnore(), body, buffer); + serializeEnterpriseSpecificInformation(((VendorInformationObject) object).getEnterpriseSpecificInformation(), + body); + ObjectUtil.formatSubobject(VENDOR_INFORMATION_OBJECT_TYPE, VENDOR_INFORMATION_OBJECT_CLASS, + object.isProcessingRule(), object.isIgnore(), body, buffer); } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPBandwidthObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPBandwidthObjectParser.java index f643f5a8f6..24cf0b99d0 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPBandwidthObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPBandwidthObjectParser.java @@ -22,7 +22,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.bandwidth.object.BandwidthBuilder; /** - * Parser for Bandwidth + * Parser for Bandwidth. */ public final class PCEPBandwidthObjectParser extends CommonObjectParser implements ObjectSerializer { @@ -40,14 +40,16 @@ public final class PCEPBandwidthObjectParser extends CommonObjectParser implemen Preconditions.checkArgument(bytes != null && bytes.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); if (bytes.readableBytes() != BANDWIDTH_F_LENGTH) { - throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " - + bytes.readableBytes() + "; Expected: " + BANDWIDTH_F_LENGTH + "."); + throw new PCEPDeserializerException( + "Wrong length of array of bytes. Passed: " + bytes.readableBytes() + + "; Expected: " + BANDWIDTH_F_LENGTH + "."); } - final BandwidthBuilder builder = new BandwidthBuilder(); - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); - builder.setBandwidth(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts - .rev131125.Bandwidth(ByteArray.getAllBytes(bytes))); + final BandwidthBuilder builder = new BandwidthBuilder() + .setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setBandwidth( + new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts.rev131125 + .Bandwidth(ByteArray.getAllBytes(bytes))); return builder.build(); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPClassTypeObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPClassTypeObjectParser.java index 9348146a00..ad075640f7 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPClassTypeObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPClassTypeObjectParser.java @@ -22,11 +22,12 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.ObjectHeader; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.classtype.object.ClassType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.classtype.object.ClassTypeBuilder; +import org.opendaylight.yangtools.yang.common.Uint8; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Parser for {@link ClassType} + * Parser for {@link ClassType}. */ public final class PCEPClassTypeObjectParser extends CommonObjectParser implements ObjectSerializer { @@ -64,19 +65,18 @@ public final class PCEPClassTypeObjectParser extends CommonObjectParser implemen throw new PCEPDeserializerException("Size of byte array doesn't match defined size. Expected: " + SIZE + "; Passed: " + bytes.readableBytes()); } - final ClassTypeBuilder builder = new ClassTypeBuilder(); - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); - final short ct = (short) bytes.readUnsignedInt(); - builder.setClassType(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.ClassType(ct)); + final ClassTypeBuilder builder = new ClassTypeBuilder() + .setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setClassType(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109 + .ClassType(Uint8.valueOf(ct))); - final Object obj = builder.build(); if (ct < 0 || ct > Byte.SIZE) { LOG.debug("Invalid class type {}", ct); - return new UnknownObject(PCEPErrors.INVALID_CT, obj); + return new UnknownObject(PCEPErrors.INVALID_CT, builder.build()); } - return obj; + return builder.build(); } @Override @@ -85,7 +85,8 @@ public final class PCEPClassTypeObjectParser extends CommonObjectParser implemen object.getClass()); final ByteBuf body = Unpooled.buffer(SIZE); body.writeZero(SIZE - 1); - final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.ClassType classType = ((ClassType) object).getClassType(); + final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109 + .ClassType classType = ((ClassType) object).getClassType(); checkArgument(classType != null, "ClassType is mandatory."); writeUnsignedByte(classType.getValue(), body); ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), body, buffer); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPCloseObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPCloseObjectParser.java index 91b20afd0b..6174adfcda 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPCloseObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPCloseObjectParser.java @@ -26,9 +26,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.close.object.c.close.Tlvs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.close.object.c.close.TlvsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.vendor.information.tlvs.VendorInformationTlv; +import org.opendaylight.yangtools.yang.common.Uint8; /** - * Parser for {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.close.object.CClose PCEPCloseObject} + * Parser for {@link + * org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.close.object.CClose + * PCEPCloseObject + * }. */ public final class PCEPCloseObjectParser extends AbstractObjectWithTlvsParser { @@ -48,16 +52,16 @@ public final class PCEPCloseObjectParser extends AbstractObjectWithTlvsParser { @@ -48,12 +48,12 @@ public final class PCEPErrorObjectParser extends AbstractObjectWithTlvsParser { @@ -42,15 +42,13 @@ public class PCEPGlobalConstraintsObjectParser extends AbstractObjectWithTlvsPar @Override public Gc parseObject(final ObjectHeader header, final ByteBuf bytes) throws PCEPDeserializerException { checkArgument(bytes != null && bytes.isReadable(), "Array of bytes is mandatory. Cannot be null or empty."); - final GcBuilder builder = new GcBuilder(); - - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); - - builder.setMaxHop(ByteBufUtils.readUint8(bytes)); - builder.setMaxUtilization(ByteBufUtils.readUint8(bytes)); - builder.setMinUtilization(ByteBufUtils.readUint8(bytes)); - builder.setOverBookingFactor(ByteBufUtils.readUint8(bytes)); + final GcBuilder builder = new GcBuilder() + .setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setMaxHop(ByteBufUtils.readUint8(bytes)) + .setMaxUtilization(ByteBufUtils.readUint8(bytes)) + .setMinUtilization(ByteBufUtils.readUint8(bytes)) + .setOverBookingFactor(ByteBufUtils.readUint8(bytes)); final TlvsBuilder tlvsBuilder = new TlvsBuilder(); parseTlvs(tlvsBuilder, bytes.slice()); builder.setTlvs(tlvsBuilder.build()); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPIncludeRouteObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPIncludeRouteObjectParser.java index 0395b3a124..141fe4a655 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPIncludeRouteObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPIncludeRouteObjectParser.java @@ -23,7 +23,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.include.route.object.iro.SubobjectBuilder; /** - * Parser for {@link Iro} + * Parser for {@link Iro}. */ public final class PCEPIncludeRouteObjectParser extends AbstractEROWithSubobjectsParser { @@ -38,15 +38,18 @@ public final class PCEPIncludeRouteObjectParser extends AbstractEROWithSubobject public Iro parseObject(final ObjectHeader header, final ByteBuf bytes) throws PCEPDeserializerException { Preconditions.checkArgument(bytes != null && bytes.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final IroBuilder builder = new IroBuilder(); - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); final List subs = new ArrayList<>(); for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.explicit - .route.object.ero.Subobject s : parseSubobjects(bytes)) { - subs.add(new SubobjectBuilder().setLoose(s.isLoose()).setSubobjectType(s.getSubobjectType()).build()); + .route.object.ero.Subobject s : parseSubobjects(bytes)) { + subs.add(new SubobjectBuilder() + .setLoose(s.isLoose()) + .setSubobjectType(s.getSubobjectType()) + .build()); } - builder.setSubobject(subs); + final IroBuilder builder = new IroBuilder() + .setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setSubobject(subs); return builder.build(); } @@ -59,9 +62,12 @@ public final class PCEPIncludeRouteObjectParser extends AbstractEROWithSubobject final List subs = new ArrayList<>(); for (final Subobject s : iro.getSubobject()) { - subs.add(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109 - .explicit.route.object.ero.SubobjectBuilder().setLoose( - s.isLoose()).setSubobjectType(s.getSubobjectType()).build()); + subs.add( + new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109 + .explicit.route.object.ero.SubobjectBuilder() + .setLoose(s.isLoose()) + .setSubobjectType(s.getSubobjectType()) + .build()); } serializeSubobject(subs, body); ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), body, buffer); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPLoadBalancingObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPLoadBalancingObjectParser.java index 57b23efb36..ae6a490263 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPLoadBalancingObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPLoadBalancingObjectParser.java @@ -26,7 +26,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.load.balancing.object.LoadBalancingBuilder; /** - * Parser for {@link LoadBalancing} + * Parser for {@link LoadBalancing}. */ public final class PCEPLoadBalancingObjectParser extends CommonObjectParser implements ObjectSerializer { @@ -48,12 +48,12 @@ public final class PCEPLoadBalancingObjectParser extends CommonObjectParser impl throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + bytes.readableBytes() + "; Expected: " + SIZE + "."); } - final LoadBalancingBuilder builder = new LoadBalancingBuilder(); - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); bytes.skipBytes(RESERVED + FLAGS_F_LENGTH); - builder.setMaxLsp(ByteBufUtils.readUint8(bytes)); - builder.setMinBandwidth(new Bandwidth(ByteArray.readAllBytes(bytes))); + final LoadBalancingBuilder builder = new LoadBalancingBuilder() + .setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setMaxLsp(ByteBufUtils.readUint8(bytes)) + .setMinBandwidth(new Bandwidth(ByteArray.readAllBytes(bytes))); return builder.build(); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPLspaObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPLspaObjectParser.java index a254eee6cb..40f7a86dd8 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPLspaObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPLspaObjectParser.java @@ -31,7 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.AttributeFilter; /** - * Parser for {@link Lspa} + * Parser for {@link Lspa}. */ public class PCEPLspaObjectParser extends AbstractObjectWithTlvsParser { @@ -58,15 +58,14 @@ public class PCEPLspaObjectParser extends AbstractObjectWithTlvsParserMonitoring Object * */ @@ -54,16 +55,17 @@ public class PCEPMonitoringObjectParser extends AbstractObjectWithTlvsParser { @@ -56,17 +57,18 @@ public class PCEPNoPathObjectParser extends AbstractObjectWithTlvsParser { @@ -50,12 +50,12 @@ public final class PCEPNotificationObjectParser extends AbstractObjectWithTlvsPa public CNotification parseObject(final ObjectHeader header, final ByteBuf bytes) throws PCEPDeserializerException { Preconditions.checkArgument(bytes != null && bytes.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final CNotificationBuilder builder = new CNotificationBuilder(); - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); bytes.skipBytes(NT_F_OFFSET); - builder.setType(ByteBufUtils.readUint8(bytes)); - builder.setValue(ByteBufUtils.readUint8(bytes)); + final CNotificationBuilder builder = new CNotificationBuilder() + .setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setType(ByteBufUtils.readUint8(bytes)) + .setValue(ByteBufUtils.readUint8(bytes)); parseTlvs(builder, bytes.slice()); return builder.build(); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPObjectiveFunctionObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPObjectiveFunctionObjectParser.java index 69961e4815..ca1c3dc0e8 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPObjectiveFunctionObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPObjectiveFunctionObjectParser.java @@ -27,9 +27,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.of.object.of.Tlvs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.of.object.of.TlvsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.vendor.information.tlvs.VendorInformationTlv; +import org.opendaylight.yangtools.yang.common.Uint16; /** - * Parser for {@link Of} + * Parser for {@link Of}. */ public final class PCEPObjectiveFunctionObjectParser extends AbstractObjectWithTlvsParser { @@ -45,14 +46,15 @@ public final class PCEPObjectiveFunctionObjectParser extends AbstractObjectWithT public Of parseObject(final ObjectHeader header, final ByteBuf bytes) throws PCEPDeserializerException { Preconditions.checkArgument(bytes != null && bytes.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final OfBuilder builder = new OfBuilder(); - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); - builder.setCode(new OfId(ByteBufUtils.readUint16(bytes))); + final Uint16 ofId = ByteBufUtils.readUint16(bytes); bytes.readBytes(RESERVED); final TlvsBuilder tlvsBuilder = new TlvsBuilder(); parseTlvs(tlvsBuilder, bytes.slice()); - builder.setTlvs(tlvsBuilder.build()); + final OfBuilder builder = new OfBuilder() + .setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setCode(new OfId(ofId)) + .setTlvs(tlvsBuilder.build()); return builder.build(); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPOpenObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPOpenObjectParser.java index f2d855883d..f11220d4b6 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPOpenObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPOpenObjectParser.java @@ -37,7 +37,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Parser for {@link Open} + * Parser for {@link Open}. */ public class PCEPOpenObjectParser extends AbstractObjectWithTlvsParser { private static final Logger LOG = LoggerFactory.getLogger(PCEPOpenObjectParser.class); @@ -66,23 +66,23 @@ public class PCEPOpenObjectParser extends AbstractObjectWithTlvsParser pk = new ArrayList<>(); final List subs = parseSubobjects(bytes); - for (final Subobject s : subs) { - final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.explicit.route - .subobjects.subobject.type.PathKeyCase k = (org.opendaylight.yang.gen.v1.urn.opendaylight.params - .xml.ns.yang.rsvp.rev150820.explicit.route.subobjects.subobject.type.PathKeyCase) s.getSubobjectType(); - pk.add(new PathKeysBuilder().setLoose(s.isLoose()).setPceId(k.getPathKey().getPceId()) - .setPathKey(k.getPathKey().getPathKey()).build()); + for (final Subobject sub : subs) { + final PathKeyCase pkc = (PathKeyCase) sub.getSubobjectType(); + pk.add(new PathKeysBuilder().setLoose(sub.isLoose()).setPceId(pkc.getPathKey().getPceId()) + .setPathKey(pkc.getPathKey().getPathKey()).build()); } - builder.setPathKeys(pk); + final PathKeyBuilder builder = new PathKeyBuilder() + .setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setPathKeys(pk); return builder.build(); } @@ -62,15 +61,20 @@ public final class PCEPPathKeyObjectParser extends AbstractEROWithSubobjectsPars "Wrong instance of PCEPObject. Passed %s. Needed PathKeyObject.", object.getClass()); final PathKey pkey = (PathKey) object; final ByteBuf body = Unpooled.buffer(); - final List pk = pkey.getPathKeys(); + final List pks = pkey.getPathKeys(); final List subs = new ArrayList<>(); - for (final PathKeys p : pk) { - subs.add(new SubobjectBuilder().setLoose(p.isLoose()).setSubobjectType( - new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.explicit - .route.subobjects.subobject.type.PathKeyCaseBuilder().setPathKey( - new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820 - .explicit.route.subobjects.subobject.type.path.key._case.PathKeyBuilder().setPathKey(p - .getPathKey()).setPceId(p.getPceId()).build()).build()).build()); + for (final PathKeys pk : pks) { + subs.add(new SubobjectBuilder() + .setLoose(pk.isLoose()) + .setSubobjectType(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp + .rev150820.explicit.route.subobjects.subobject.type.PathKeyCaseBuilder() + .setPathKey(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp + .rev150820.explicit.route.subobjects.subobject.type.path.key._case.PathKeyBuilder() + .setPathKey(pk.getPathKey()) + .setPceId(pk.getPceId()) + .build()) + .build()) + .build()); } serializeSubobject(subs, body); ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), body, buffer); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPccIdReqIPv4ObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPccIdReqIPv4ObjectParser.java index 3e140cc8be..18be233657 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPccIdReqIPv4ObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPccIdReqIPv4ObjectParser.java @@ -18,7 +18,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcc.id.req.object.PccIdReqBuilder; /** - * Parser for {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcc.id.req.object.PccIdReq} with IPv4 address + * Parser for {@link + * org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcc.id.req.object.PccIdReq + * } with IPv4 address. * @see PCC-ID-REQ Object */ public final class PCEPPccIdReqIPv4ObjectParser extends AbstractPccIdReqObjectParser { @@ -32,8 +34,7 @@ public final class PCEPPccIdReqIPv4ObjectParser extends AbstractPccIdReqObjectPa public Object parseObject(final ObjectHeader header, final ByteBuf buffer) throws PCEPDeserializerException { Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final PccIdReqBuilder builder = new PccIdReqBuilder(); - builder.setIpAddress(new IpAddressNoZone(Ipv4Util.noZoneAddressForByteBuf(buffer))); - return builder.build(); + return + new PccIdReqBuilder().setIpAddress(new IpAddressNoZone(Ipv4Util.noZoneAddressForByteBuf(buffer))).build(); } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPccIdReqIPv6ObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPccIdReqIPv6ObjectParser.java index 1b4f75d833..2c7e988182 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPccIdReqIPv6ObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPccIdReqIPv6ObjectParser.java @@ -18,7 +18,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcc.id.req.object.PccIdReqBuilder; /** - * Parser for {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcc.id.req.object.PccIdReq} with IPv6 address + * Parser for {@link + * org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcc.id.req.object.PccIdReq + * } with IPv6 address. * @see PCC-ID-REQ Object */ public final class PCEPPccIdReqIPv6ObjectParser extends AbstractPccIdReqObjectParser { @@ -30,9 +32,9 @@ public final class PCEPPccIdReqIPv6ObjectParser extends AbstractPccIdReqObjectPa @Override public Object parseObject(final ObjectHeader header, final ByteBuf buffer) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final PccIdReqBuilder builder = new PccIdReqBuilder(); - builder.setIpAddress(new IpAddressNoZone(Ipv6Util.noZoneAddressForByteBuf(buffer))); - return builder.build(); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); + return + new PccIdReqBuilder().setIpAddress(new IpAddressNoZone(Ipv6Util.noZoneAddressForByteBuf(buffer))).build(); } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPceIdIPv4ObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPceIdIPv4ObjectParser.java index 5b2ce8717f..83edaac207 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPceIdIPv4ObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPceIdIPv4ObjectParser.java @@ -18,7 +18,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pce.id.object.PceIdBuilder; /** - * Parser for {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pce.id.object.PceId} with IPv4 address + * Parser for {@link + * org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pce.id.object.PceId + * } with IPv4 address. * @see PCE-ID Object */ public class PCEPPceIdIPv4ObjectParser extends AbstractPceIdObjectParser { @@ -30,9 +32,8 @@ public class PCEPPceIdIPv4ObjectParser extends AbstractPceIdObjectParser { @Override public Object parseObject(final ObjectHeader header, final ByteBuf buffer) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final PceIdBuilder builder = new PceIdBuilder(); - builder.setIpAddress(new IpAddressNoZone(Ipv4Util.noZoneAddressForByteBuf(buffer))); - return builder.build(); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); + return new PceIdBuilder().setIpAddress(new IpAddressNoZone(Ipv4Util.noZoneAddressForByteBuf(buffer))).build(); } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPceIdIPv6ObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPceIdIPv6ObjectParser.java index f6b45ef6a3..fcaa7d2ea7 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPceIdIPv6ObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPPceIdIPv6ObjectParser.java @@ -18,7 +18,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pce.id.object.PceIdBuilder; /** - * Parser for {@link org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pce.id.object.PceId} with IPv6 address + * Parser for {@link + * org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pce.id.object.PceId + * } with IPv6 address. * @see */ public class PCEPPceIdIPv6ObjectParser extends AbstractPceIdObjectParser { @@ -30,9 +32,8 @@ public class PCEPPceIdIPv6ObjectParser extends AbstractPceIdObjectParser { @Override public Object parseObject(final ObjectHeader header, final ByteBuf buffer) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final PceIdBuilder builder = new PceIdBuilder(); - builder.setIpAddress(new IpAddressNoZone(Ipv6Util.noZoneAddressForByteBuf(buffer))); - return builder.build(); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); + return new PceIdBuilder().setIpAddress(new IpAddressNoZone(Ipv6Util.noZoneAddressForByteBuf(buffer))).build(); } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPProcTimeObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPProcTimeObjectParser.java index 58d5a4e36a..20c1b9341e 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPProcTimeObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPProcTimeObjectParser.java @@ -25,7 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.proc.time.object.ProcTimeBuilder; /** - * Parser for {@link ProcTime} + * Parser for {@link ProcTime}. * @see PROC-TIME Object */ public class PCEPProcTimeObjectParser extends CommonObjectParser implements ObjectSerializer { diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPReportedRouteObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPReportedRouteObjectParser.java index f567871ff8..31e9fc8fd6 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPReportedRouteObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPReportedRouteObjectParser.java @@ -21,7 +21,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.reported.route.object.RroBuilder; /** - * Parser for {@link Rro} + * Parser for {@link Rro}. */ public final class PCEPReportedRouteObjectParser extends AbstractRROWithSubobjectsParser { @@ -37,10 +37,10 @@ public final class PCEPReportedRouteObjectParser extends AbstractRROWithSubobjec public Rro parseObject(final ObjectHeader header, final ByteBuf bytes) throws PCEPDeserializerException { Preconditions.checkArgument(bytes != null && bytes.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final RroBuilder builder = new RroBuilder(); - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); - builder.setSubobject(parseSubobjects(bytes.slice())); + final RroBuilder builder = new RroBuilder() + .setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setSubobject(parseSubobjects(bytes.slice())); return builder.build(); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPRequestParameterObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPRequestParameterObjectParser.java index 6d36264aca..c082cc5689 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPRequestParameterObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPRequestParameterObjectParser.java @@ -31,10 +31,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.rp.object.rp.Tlvs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.rp.object.rp.TlvsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.vendor.information.tlvs.VendorInformationTlv; +import org.opendaylight.yangtools.yang.common.Uint32; import org.opendaylight.yangtools.yang.common.Uint8; /** - * Parser for {@link Rp} + * Parser for {@link Rp}. */ public class PCEPRequestParameterObjectParser extends AbstractObjectWithTlvsParser { @@ -97,10 +98,24 @@ public class PCEPRequestParameterObjectParser extends AbstractObjectWithTlvsPars public Object parseObject(final ObjectHeader header, final ByteBuf bytes) throws PCEPDeserializerException { checkArgument(bytes != null && bytes.isReadable(), "Array of bytes is mandatory. Cannot be null or empty."); final BitArray flags = BitArray.valueOf(bytes, FLAGS_SIZE); - - final RpBuilder builder = new RpBuilder(); - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); + final Uint32 reqId = ByteBufUtils.readUint32(bytes); + final TlvsBuilder tlvsBuilder = new TlvsBuilder(); + parseTlvs(tlvsBuilder, bytes.slice()); + final RpBuilder builder = new RpBuilder() + .setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setFragmentation(flags.get(F_FLAG_OFFSET)) + .setP2mp(flags.get(N_FLAG_OFFSET)) + .setEroCompression(flags.get(E_FLAG_OFFSET)) + .setMakeBeforeBreak(flags.get(M_FLAG_OFFSET)) + .setOrder(flags.get(D_FLAG_OFFSET)) + .setPathKey(flags.get(P_FLAG_OFFSET)) + .setSupplyOf(flags.get(S_FLAG_OFFSET)) + .setLoose(flags.get(O_FLAG_OFFSET)) + .setBiDirectional(flags.get(B_FLAG_OFFSET)) + .setReoptimization(flags.get(R_FLAG_OFFSET)) + .setRequestId(new RequestId(reqId)) + .setTlvs(tlvsBuilder.build()); short priority = 0; priority |= flags.get(PRI_SF_OFFSET + 2) ? 1 : 0; @@ -109,21 +124,7 @@ public class PCEPRequestParameterObjectParser extends AbstractObjectWithTlvsPars if (priority != 0) { builder.setPriority(Uint8.valueOf(priority)); } - builder.setFragmentation(flags.get(F_FLAG_OFFSET)); - builder.setP2mp(flags.get(N_FLAG_OFFSET)); - builder.setEroCompression(flags.get(E_FLAG_OFFSET)); - builder.setMakeBeforeBreak(flags.get(M_FLAG_OFFSET)); - builder.setOrder(flags.get(D_FLAG_OFFSET)); - builder.setPathKey(flags.get(P_FLAG_OFFSET)); - builder.setSupplyOf(flags.get(S_FLAG_OFFSET)); - builder.setLoose(flags.get(O_FLAG_OFFSET)); - builder.setBiDirectional(flags.get(B_FLAG_OFFSET)); - builder.setReoptimization(flags.get(R_FLAG_OFFSET)); - - builder.setRequestId(new RequestId(ByteBufUtils.readUint32(bytes))); - final TlvsBuilder tlvsBuilder = new TlvsBuilder(); - parseTlvs(tlvsBuilder, bytes.slice()); - builder.setTlvs(tlvsBuilder.build()); + return builder.build(); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPSvecObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPSvecObjectParser.java index a8205215d1..25ba65ebe6 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPSvecObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPSvecObjectParser.java @@ -27,7 +27,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.svec.object.SvecBuilder; /** - * Parser for {@link Svec} + * Parser for {@link Svec}. */ public final class PCEPSvecObjectParser extends CommonObjectParser implements ObjectSerializer { @@ -80,17 +80,15 @@ public final class PCEPSvecObjectParser extends CommonObjectParser implements Ob if (requestIDs.isEmpty()) { throw new PCEPDeserializerException("Empty Svec Object - no request ids."); } - final SvecBuilder builder = new SvecBuilder(); - - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); - - builder.setLinkDiverse(flags.get(L_FLAG_OFFSET)); - builder.setNodeDiverse(flags.get(N_FLAG_OFFSET)); - builder.setSrlgDiverse(flags.get(S_FLAG_OFFSET)); - builder.setLinkDirectionDiverse(flags.get(D_FLAG_OFFSET)); - builder.setPartialPathDiverse(flags.get(P_FLAG_OFFSET)); - builder.setRequestsIds(requestIDs); + final SvecBuilder builder = new SvecBuilder() + .setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setLinkDiverse(flags.get(L_FLAG_OFFSET)) + .setNodeDiverse(flags.get(N_FLAG_OFFSET)) + .setSrlgDiverse(flags.get(S_FLAG_OFFSET)) + .setLinkDirectionDiverse(flags.get(D_FLAG_OFFSET)) + .setPartialPathDiverse(flags.get(P_FLAG_OFFSET)) + .setRequestsIds(requestIDs); return builder.build(); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/end/points/PCEPEndPointsIpv4ObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/end/points/PCEPEndPointsIpv4ObjectParser.java index 33b68fd2cb..54e8d50bbf 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/end/points/PCEPEndPointsIpv4ObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/end/points/PCEPEndPointsIpv4ObjectParser.java @@ -29,7 +29,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Parser for IPv4 {@link EndpointsObj} + * Parser for IPv4 {@link EndpointsObj}. */ public class PCEPEndPointsIpv4ObjectParser extends CommonObjectParser { @@ -68,12 +68,12 @@ public class PCEPEndPointsIpv4ObjectParser extends CommonObjectParser { if (bytes.readableBytes() != Ipv4Util.IP4_LENGTH * 2) { throw new PCEPDeserializerException("Wrong length of array of bytes."); } - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); - final Ipv4Builder b = new Ipv4Builder(); - b.setSourceIpv4Address(Ipv4Util.noZoneAddressForByteBuf(bytes)); - b.setDestinationIpv4Address(Ipv4Util.noZoneAddressForByteBuf(bytes)); - builder.setAddressFamily(new Ipv4CaseBuilder().setIpv4(b.build()).build()); + final Ipv4Builder ipv4bldr = new Ipv4Builder() + .setSourceIpv4Address(Ipv4Util.noZoneAddressForByteBuf(bytes)) + .setDestinationIpv4Address(Ipv4Util.noZoneAddressForByteBuf(bytes)); + builder.setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setAddressFamily(new Ipv4CaseBuilder().setIpv4(ipv4bldr.build()).build()); return builder.build(); } -} \ No newline at end of file +} diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/end/points/PCEPEndPointsIpv6ObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/end/points/PCEPEndPointsIpv6ObjectParser.java index 1430355d19..5399cde7ec 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/end/points/PCEPEndPointsIpv6ObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/end/points/PCEPEndPointsIpv6ObjectParser.java @@ -29,7 +29,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Parser for IPv6 {@link EndpointsObj} + * Parser for IPv6 {@link EndpointsObj}. */ public final class PCEPEndPointsIpv6ObjectParser extends CommonObjectParser { @@ -68,12 +68,12 @@ public final class PCEPEndPointsIpv6ObjectParser extends CommonObjectParser { if (bytes.readableBytes() != Ipv6Util.IPV6_LENGTH * 2) { throw new PCEPDeserializerException("Wrong length of array of bytes."); } - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); - final Ipv6Builder b = new Ipv6Builder(); - b.setSourceIpv6Address(Ipv6Util.noZoneAddressForByteBuf(bytes)); - b.setDestinationIpv6Address(Ipv6Util.noZoneAddressForByteBuf(bytes)); - builder.setAddressFamily(new Ipv6CaseBuilder().setIpv6(b.build()).build()); + final Ipv6Builder ipv6bldr = new Ipv6Builder() + .setSourceIpv6Address(Ipv6Util.noZoneAddressForByteBuf(bytes)) + .setDestinationIpv6Address(Ipv6Util.noZoneAddressForByteBuf(bytes)); + builder.setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setAddressFamily(new Ipv6CaseBuilder().setIpv6(ipv6bldr.build()).build()); return builder.build(); } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/end/points/PCEPP2MPEndPointsIpv6ObjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/end/points/PCEPP2MPEndPointsIpv6ObjectParser.java index 00797d8082..dad61e6d0e 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/end/points/PCEPP2MPEndPointsIpv6ObjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/end/points/PCEPP2MPEndPointsIpv6ObjectParser.java @@ -48,7 +48,8 @@ public class PCEPP2MPEndPointsIpv6ObjectParser extends CommonObjectParser { final ByteBuf buffer) { final List dest = p2mpIpv6.getDestinationIpv6Address(); Preconditions.checkArgument(dest != null, "DestinationIpv6Address is mandatory."); - final ByteBuf body = Unpooled.buffer(LEAF_TYPE_SIZE + Ipv6Util.IPV6_LENGTH + Ipv6Util.IPV6_LENGTH * dest.size()); + final ByteBuf body = + Unpooled.buffer(LEAF_TYPE_SIZE + Ipv6Util.IPV6_LENGTH + Ipv6Util.IPV6_LENGTH * dest.size()); Preconditions.checkArgument(p2mpIpv6.getSourceIpv6Address() != null, "SourceIpv6Address is mandatory."); body.writeInt(p2mpIpv6.getP2mpLeaves().getIntValue()); @@ -61,25 +62,26 @@ public class PCEPP2MPEndPointsIpv6ObjectParser extends CommonObjectParser { public Object parseObject(final ObjectHeader header, final ByteBuf bytes) throws PCEPDeserializerException { Preconditions.checkArgument(bytes != null && bytes.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final EndpointsObjBuilder builder = new EndpointsObjBuilder(); if (!header.isProcessingRule()) { LOG.debug("Processed bit not set on Endpoints OBJECT, ignoring it."); - return new UnknownObject(PCEPErrors.P_FLAG_NOT_SET, builder.build()); + return new UnknownObject(PCEPErrors.P_FLAG_NOT_SET, new EndpointsObjBuilder().build()); } if (bytes.readableBytes() % Ipv6Util.IPV6_LENGTH != 4) { throw new PCEPDeserializerException("Wrong length of array of bytes."); } - builder.setIgnore(header.isIgnore()); - builder.setProcessingRule(header.isProcessingRule()); - final P2mpIpv6Builder p2mpIpv6Builder = new P2mpIpv6Builder(); - p2mpIpv6Builder.setP2mpLeaves(P2mpLeaves.forValue(bytes.readInt())); - p2mpIpv6Builder.setSourceIpv6Address(Ipv6Util.noZoneAddressForByteBuf(bytes)); + + final P2mpIpv6Builder p2mpIpv6Builder = new P2mpIpv6Builder() + .setP2mpLeaves(P2mpLeaves.forValue(bytes.readInt())) + .setSourceIpv6Address(Ipv6Util.noZoneAddressForByteBuf(bytes)); List dest = new ArrayList<>(); while (bytes.isReadable()) { dest.add(Ipv6Util.noZoneAddressForByteBuf(bytes)); } p2mpIpv6Builder.setDestinationIpv6Address(dest); - builder.setAddressFamily(new P2mpIpv6CaseBuilder().setP2mpIpv6(p2mpIpv6Builder.build()).build()); + final EndpointsObjBuilder builder = new EndpointsObjBuilder() + .setIgnore(header.isIgnore()) + .setProcessingRule(header.isProcessingRule()) + .setAddressFamily(new P2mpIpv6CaseBuilder().setP2mpIpv6(p2mpIpv6Builder.build()).build()); return builder.build(); } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/AsNumberCaseParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/AsNumberCaseParser.java index 907cba65c7..a502ebcf5a 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/AsNumberCaseParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/AsNumberCaseParser.java @@ -38,7 +38,6 @@ final class AsNumberCaseParser { new AsNumber(Uint32.valueOf(buffer.readUnsignedShort()))).build()).build(); } - static ByteBuf serializeSubobject(final AsNumberCase asCase) { final AsNumberSubobject asNumber = asCase.getAsNumber(); final ByteBuf body = Unpooled.buffer(CONTENT_LENGTH); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROAsNumberSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROAsNumberSubobjectParser.java index b79874a6fe..d3acad146b 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROAsNumberSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROAsNumberSubobjectParser.java @@ -18,7 +18,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.AsNumberCase; /** - * Parser for {@link AsNumberCase} + * Parser for {@link AsNumberCase}. */ public class EROAsNumberSubobjectParser implements EROSubobjectParser, EROSubobjectSerializer { @@ -26,12 +26,14 @@ public class EROAsNumberSubobjectParser implements EROSubobjectParser, EROSubobj @Override public Subobject parseSubobject(final ByteBuf buffer, final boolean loose) throws PCEPDeserializerException { - return new SubobjectBuilder().setLoose(loose).setSubobjectType(AsNumberCaseParser.parseSubobject(buffer)).build(); + return new SubobjectBuilder().setLoose(loose).setSubobjectType(AsNumberCaseParser.parseSubobject(buffer)) + .build(); } @Override public void serializeSubobject(final Subobject subobject, final ByteBuf buffer) { - Preconditions.checkArgument(subobject.getSubobjectType() instanceof AsNumberCase, "Unknown subobject instance. Passed %s. Needed AsNumberCase.", subobject.getSubobjectType().getClass()); + Preconditions.checkArgument(subobject.getSubobjectType() instanceof AsNumberCase, + "Unknown subobject instance. Passed %s. Needed AsNumberCase.", subobject.getSubobjectType().getClass()); final ByteBuf body = AsNumberCaseParser.serializeSubobject((AsNumberCase) subobject.getSubobjectType()); EROSubobjectUtil.formatSubobject(TYPE, subobject.isLoose(), body, buffer); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROExplicitExclusionRouteSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROExplicitExclusionRouteSubobjectParser.java index 8cd69071ec..7511bafdac 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROExplicitExclusionRouteSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROExplicitExclusionRouteSubobjectParser.java @@ -39,59 +39,78 @@ public class EROExplicitExclusionRouteSubobjectParser implements EROSubobjectPar @Override public Subobject parseSubobject(final ByteBuf buffer, final boolean loose) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final SubobjectBuilder builder = new SubobjectBuilder(); - builder.setLoose(loose); - final List list = parseSubobject(buffer); - final List exrss = new ArrayList<>(); - for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.exclude.route.object.xro.Subobject s : list) { - final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.explicit.route.subobjects.subobject.type.exrs._case.exrs.ExrsBuilder b = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.explicit.route.subobjects.subobject.type.exrs._case.exrs.ExrsBuilder(); - b.setAttribute(s.getAttribute()); - b.setMandatory(s.isMandatory()); - b.setSubobjectType(s.getSubobjectType()); - exrss.add(b.build()); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); + final List xros = parseSubobject(buffer); + final List exrss = new ArrayList<>(); + for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.exclude + .route.object.xro.Subobject xro : xros) { + final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820 + .explicit.route.subobjects.subobject.type.exrs._case.exrs.ExrsBuilder exrsBuilder = + new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820 + .explicit.route.subobjects.subobject.type.exrs._case.exrs.ExrsBuilder() + .setAttribute(xro.getAttribute()) + .setMandatory(xro.isMandatory()) + .setSubobjectType(xro.getSubobjectType()); + exrss.add(exrsBuilder.build()); } - builder.setSubobjectType(new ExrsCaseBuilder().setExrs(new ExrsBuilder().setExrs(exrss).build()).build()); + final SubobjectBuilder builder = new SubobjectBuilder() + .setLoose(loose) + .setSubobjectType(new ExrsCaseBuilder().setExrs(new ExrsBuilder().setExrs(exrss).build()).build()); return builder.build(); } - @Override - public void serializeSubobject(final Subobject subobject, final ByteBuf buffer) { - Preconditions.checkArgument(subobject.getSubobjectType() instanceof ExrsCase, "Unknown subobject instance. Passed %s. Needed Exrs.", subobject.getSubobjectType().getClass()); - final Exrs e = ((ExrsCase) subobject.getSubobjectType()).getExrs(); - final List list = new ArrayList<>(); - for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.explicit.route.subobjects.subobject.type.exrs._case.exrs.Exrs ex : e.getExrs()) { - final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.exclude.route.object.xro.SubobjectBuilder b = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.exclude.route.object.xro.SubobjectBuilder(); - b.setAttribute(ex.getAttribute()); - b.setMandatory(ex.isMandatory()); - b.setSubobjectType(ex.getSubobjectType()); - list.add(b.build()); - } - final ByteBuf body = Unpooled.buffer(); - serializeSubobject(list, body); - EROSubobjectUtil.formatSubobject(TYPE, subobject.isLoose(), body, buffer); - } - - private List parseSubobject( - final ByteBuf buffer) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final List subs = new ArrayList<>(); + private List parseSubobject(final ByteBuf buffer) throws PCEPDeserializerException { + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); + final List xros = new ArrayList<>(); while (buffer.isReadable()) { - final boolean mandatory = ((buffer.getByte(buffer.readerIndex()) & (1 << Values.FIRST_BIT_OFFSET)) != 0) ? true : false; - final int type = (buffer.readUnsignedByte() & Values.BYTE_MAX_VALUE_BYTES) & ~(1 << Values.FIRST_BIT_OFFSET); + final boolean mandatory = + ((buffer.getByte(buffer.readerIndex()) & (1 << Values.FIRST_BIT_OFFSET)) != 0) ? true : false; + final int type = + (buffer.readUnsignedByte() & Values.BYTE_MAX_VALUE_BYTES) & ~(1 << Values.FIRST_BIT_OFFSET); final int length = buffer.readUnsignedByte() - HEADER_LENGTH; if (length > buffer.readableBytes()) { throw new PCEPDeserializerException("Wrong length specified. Passed: " + length + "; Expected: <= " + buffer.readableBytes()); } - subs.add(this.registry.parseSubobject(type, buffer.readSlice(length), mandatory)); + xros.add(this.registry.parseSubobject(type, buffer.readSlice(length), mandatory)); } - return subs; + return xros; + } + + @Override + public void serializeSubobject(final Subobject subobject, final ByteBuf buffer) { + Preconditions.checkArgument(subobject.getSubobjectType() instanceof ExrsCase, + "Unknown subobject instance. Passed %s. Needed Exrs.", subobject.getSubobjectType().getClass()); + final Exrs exrs = ((ExrsCase) subobject.getSubobjectType()).getExrs(); + final List xros = new ArrayList<>(); + for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.explicit + .route.subobjects.subobject.type.exrs._case.exrs.Exrs exr : exrs.getExrs()) { + final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109 + .exclude.route.object.xro.SubobjectBuilder xroBuilder = + new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109 + .exclude.route.object.xro.SubobjectBuilder() + .setAttribute(exr.getAttribute()) + .setMandatory(exr.isMandatory()) + .setSubobjectType(exr.getSubobjectType()); + xros.add(xroBuilder.build()); + } + final ByteBuf body = Unpooled.buffer(); + serializeSubobject(xros, body); + EROSubobjectUtil.formatSubobject(TYPE, subobject.isLoose(), body, buffer); } private void serializeSubobject( - final List subobjects, final ByteBuf body) { - for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.exclude.route.object.xro.Subobject subobject : subobjects) { + final List subobjects, final ByteBuf body) { + for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.exclude + .route.object.xro.Subobject subobject : subobjects) { this.registry.serializeSubobject(subobject, body); } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROIpv4PrefixSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROIpv4PrefixSubobjectParser.java index 7ced9af109..c3e8877367 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROIpv4PrefixSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROIpv4PrefixSubobjectParser.java @@ -27,7 +27,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.ip.prefix._case.IpPrefixBuilder; /** - * Parser for {@link IpPrefixCase} + * Parser for {@link IpPrefixCase}. */ public class EROIpv4PrefixSubobjectParser implements EROSubobjectParser, EROSubobjectSerializer { @@ -41,25 +41,29 @@ public class EROIpv4PrefixSubobjectParser implements EROSubobjectParser, EROSubo @Override public Subobject parseSubobject(final ByteBuf buffer, final boolean loose) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final SubobjectBuilder builder = new SubobjectBuilder(); - builder.setLoose(loose); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); if (buffer.readableBytes() != CONTENT4_LENGTH) { - throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + ";"); + throw new PCEPDeserializerException( + "Wrong length of array of bytes. Passed: " + buffer.readableBytes() + ";"); } final int length = buffer.getUnsignedByte(PREFIX4_F_OFFSET); - final IpPrefixBuilder prefix = new IpPrefixBuilder().setIpPrefix(new IpPrefix(Ipv4Util.prefixForBytes(ByteArray.readBytes(buffer, - Ipv4Util.IP4_LENGTH), length))); - builder.setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix(prefix.build()).build()); + final IpPrefixBuilder prefix = new IpPrefixBuilder().setIpPrefix( + new IpPrefix(Ipv4Util.prefixForBytes(ByteArray.readBytes(buffer, Ipv4Util.IP4_LENGTH), length))); + final SubobjectBuilder builder = new SubobjectBuilder() + .setLoose(loose) + .setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix(prefix.build()).build()); return builder.build(); } @Override public void serializeSubobject(final Subobject subobject, final ByteBuf buffer) { - Preconditions.checkArgument(subobject.getSubobjectType() instanceof IpPrefixCase, "Unknown subobject instance. Passed %s. Needed IpPrefixCase.", subobject.getSubobjectType().getClass()); + Preconditions.checkArgument(subobject.getSubobjectType() instanceof IpPrefixCase, + "Unknown subobject instance. Passed %s. Needed IpPrefixCase.", subobject.getSubobjectType().getClass()); final IpPrefixSubobject specObj = ((IpPrefixCase) subobject.getSubobjectType()).getIpPrefix(); final IpPrefix prefix = specObj.getIpPrefix(); - Preconditions.checkArgument(prefix.getIpv4Prefix() != null || prefix.getIpv6Prefix() != null, "Unknown AbstractPrefix instance. Passed %s.", prefix.getClass()); + Preconditions.checkArgument(prefix.getIpv4Prefix() != null || prefix.getIpv6Prefix() != null, + "Unknown AbstractPrefix instance. Passed %s.", prefix.getClass()); if (prefix.getIpv6Prefix() != null) { new EROIpv6PrefixSubobjectParser().serializeSubobject(subobject, buffer); } else { diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROIpv6PrefixSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROIpv6PrefixSubobjectParser.java index c276746581..8eeccaebbb 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROIpv6PrefixSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROIpv6PrefixSubobjectParser.java @@ -27,7 +27,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.ip.prefix._case.IpPrefixBuilder; /** - * Parser for {@link IpPrefixCase} + * Parser for {@link IpPrefixCase}. */ public class EROIpv6PrefixSubobjectParser implements EROSubobjectParser, EROSubobjectSerializer { @@ -41,22 +41,25 @@ public class EROIpv6PrefixSubobjectParser implements EROSubobjectParser, EROSubo @Override public Subobject parseSubobject(final ByteBuf buffer, final boolean loose) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final SubobjectBuilder builder = new SubobjectBuilder(); - builder.setLoose(loose); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); if (buffer.readableBytes() != CONTENT_LENGTH) { - throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + ";"); + throw new PCEPDeserializerException( + "Wrong length of array of bytes. Passed: " + buffer.readableBytes() + ";"); } final int length = buffer.getUnsignedByte(PREFIX_F_OFFSET); - final IpPrefixBuilder prefix = new IpPrefixBuilder().setIpPrefix(new IpPrefix(Ipv6Util.prefixForBytes(ByteArray.readBytes(buffer, - Ipv6Util.IPV6_LENGTH), length))); - builder.setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix(prefix.build()).build()); + final IpPrefixBuilder prefix = new IpPrefixBuilder().setIpPrefix( + new IpPrefix(Ipv6Util.prefixForBytes(ByteArray.readBytes(buffer, Ipv6Util.IPV6_LENGTH), length))); + final SubobjectBuilder builder = new SubobjectBuilder() + .setLoose(loose) + .setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix(prefix.build()).build()); return builder.build(); } @Override public void serializeSubobject(final Subobject subobject, final ByteBuf buffer) { - Preconditions.checkArgument(subobject.getSubobjectType() instanceof IpPrefixCase, "Unknown subobject instance. Passed %s. Needed IpPrefixCase.", subobject.getSubobjectType().getClass()); + Preconditions.checkArgument(subobject.getSubobjectType() instanceof IpPrefixCase, + "Unknown subobject instance. Passed %s. Needed IpPrefixCase.", subobject.getSubobjectType().getClass()); final IpPrefixSubobject specObj = ((IpPrefixCase) subobject.getSubobjectType()).getIpPrefix(); final IpPrefix prefix = specObj.getIpPrefix(); final ByteBuf body = Unpooled.buffer(); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROLabelSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROLabelSubobjectParser.java index 9095915175..8b8a4896c1 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROLabelSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROLabelSubobjectParser.java @@ -48,10 +48,11 @@ public class EROLabelSubobjectParser implements EROSubobjectParser, EROSubobject @Override public Subobject parseSubobject(final ByteBuf buffer, final boolean loose) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); if (buffer.readableBytes() < HEADER_LENGTH) { - throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + "; Expected: >" - + HEADER_LENGTH + "."); + throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + + "; Expected: >" + HEADER_LENGTH + "."); } final BitArray reserved = BitArray.valueOf(buffer, FLAGS_SIZE); final short cType = buffer.readUnsignedByte(); @@ -60,15 +61,20 @@ public class EROLabelSubobjectParser implements EROSubobjectParser, EROSubobject if (labelType == null) { throw new PCEPDeserializerException("Unknown C-TYPE for ero label subobject. Passed: " + cType); } - final LabelBuilder builder = new LabelBuilder(); - builder.setUniDirectional(reserved.get(U_FLAG_OFFSET)); - builder.setLabelType(labelType); - return new SubobjectBuilder().setLoose(loose).setSubobjectType(new LabelCaseBuilder().setLabel(builder.build()).build()).build(); + final LabelBuilder lbuilder = new LabelBuilder() + .setUniDirectional(reserved.get(U_FLAG_OFFSET)) + .setLabelType(labelType); + final SubobjectBuilder builder = new SubobjectBuilder() + .setLoose(loose) + .setSubobjectType(new LabelCaseBuilder().setLabel(lbuilder.build()).build()); + + return builder.build(); } @Override public void serializeSubobject(final Subobject subobject, final ByteBuf buffer) { - Preconditions.checkArgument(subobject.getSubobjectType() instanceof LabelCase, "Unknown subobject instance. Passed %s. Needed LabelCase.", subobject.getSubobjectType().getClass()); + Preconditions.checkArgument(subobject.getSubobjectType() instanceof LabelCase, + "Unknown subobject instance. Passed %s. Needed LabelCase.", subobject.getSubobjectType().getClass()); final Label label = ((LabelCase) subobject.getSubobjectType()).getLabel(); final ByteBuf body = Unpooled.buffer(); this.registry.serializeLabel(label.isUniDirectional(), false, label.getLabelType(), body); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROUnnumberedInterfaceSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROUnnumberedInterfaceSubobjectParser.java index 5a57cd2e14..83a3f0a966 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROUnnumberedInterfaceSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/EROUnnumberedInterfaceSubobjectParser.java @@ -25,7 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.unnumbered._case.UnnumberedBuilder; /** - * Parser for {@link UnnumberedCase} + * Parser for {@link UnnumberedCase}. */ public class EROUnnumberedInterfaceSubobjectParser implements EROSubobjectParser, EROSubobjectSerializer { @@ -42,13 +42,13 @@ public class EROUnnumberedInterfaceSubobjectParser implements EROSubobjectParser throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + "; Expected: " + CONTENT_LENGTH + "."); } - final SubobjectBuilder builder = new SubobjectBuilder(); - builder.setLoose(loose); - final UnnumberedBuilder ubuilder = new UnnumberedBuilder(); buffer.skipBytes(RESERVED); - ubuilder.setRouterId(ByteBufUtils.readUint32(buffer)); - ubuilder.setInterfaceId(ByteBufUtils.readUint32(buffer)); - builder.setSubobjectType(new UnnumberedCaseBuilder().setUnnumbered(ubuilder.build()).build()); + final UnnumberedBuilder ubuilder = new UnnumberedBuilder() + .setRouterId(ByteBufUtils.readUint32(buffer)) + .setInterfaceId(ByteBufUtils.readUint32(buffer)); + final SubobjectBuilder builder = new SubobjectBuilder() + .setLoose(loose) + .setSubobjectType(new UnnumberedCaseBuilder().setUnnumbered(ubuilder.build()).build()); return builder.build(); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/GeneralizedLabelParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/GeneralizedLabelParser.java index c79aaf50c0..715e1ca2cf 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/GeneralizedLabelParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/GeneralizedLabelParser.java @@ -22,7 +22,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.label.subobject.label.type.generalized.label._case.GeneralizedLabelBuilder; /** - * Parser for {@link GeneralizedLabelCase} + * Parser for {@link GeneralizedLabelCase}. */ public class GeneralizedLabelParser implements LabelParser, LabelSerializer { @@ -30,14 +30,19 @@ public class GeneralizedLabelParser implements LabelParser, LabelSerializer { @Override public LabelType parseLabel(final ByteBuf buffer) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - return new GeneralizedLabelCaseBuilder().setGeneralizedLabel( - new GeneralizedLabelBuilder().setGeneralizedLabel(ByteArray.readAllBytes(buffer)).build()).build(); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); + return new GeneralizedLabelCaseBuilder() + .setGeneralizedLabel( + new GeneralizedLabelBuilder().setGeneralizedLabel(ByteArray.readAllBytes(buffer)).build()) + .build(); } @Override - public void serializeLabel(final boolean unidirectional, final boolean global, final LabelType subobject, final ByteBuf buffer) { - Preconditions.checkArgument(subobject instanceof GeneralizedLabelCase, "Unknown Label Subobject instance. Passed {}. Needed GeneralizedLabelCase.", subobject.getClass()); + public void serializeLabel(final boolean unidirectional, final boolean global, final LabelType subobject, + final ByteBuf buffer) { + Preconditions.checkArgument(subobject instanceof GeneralizedLabelCase, + "Unknown Label Subobject instance. Passed {}. Needed GeneralizedLabelCase.", subobject.getClass()); final GeneralizedLabel gl = ((GeneralizedLabelCase) subobject).getGeneralizedLabel(); Preconditions.checkArgument(gl != null, "GeneralizedLabel is mandatory."); final ByteBuf body = Unpooled.wrappedBuffer(gl.getGeneralizedLabel()); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROIpv4PrefixSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROIpv4PrefixSubobjectParser.java index 2f2def5eb6..014b3980d1 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROIpv4PrefixSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROIpv4PrefixSubobjectParser.java @@ -28,7 +28,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.subobject.type.ip.prefix._case.IpPrefixBuilder; /** - * Parser for {@link IpPrefixCase} + * Parser for {@link IpPrefixCase}. */ public class RROIpv4PrefixSubobjectParser implements RROSubobjectParser, RROSubobjectSerializer { @@ -46,28 +46,34 @@ public class RROIpv4PrefixSubobjectParser implements RROSubobjectParser, RROSubo @Override public Subobject parseSubobject(final ByteBuf buffer) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); if (buffer.readableBytes() != CONTENT4_LENGTH) { - throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + ";"); + throw new PCEPDeserializerException( + "Wrong length of array of bytes. Passed: " + buffer.readableBytes() + ";"); } - final SubobjectBuilder builder = new SubobjectBuilder(); final int length = buffer.getUnsignedByte(PREFIX4_F_OFFSET); - final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.subobject.type.ip.prefix._case.IpPrefix prefix = new IpPrefixBuilder().setIpPrefix( - new IpPrefix(Ipv4Util.prefixForBytes(ByteArray.readBytes(buffer, Ipv4Util.IP4_LENGTH), length))).build(); + final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects + .subobject.type.ip.prefix._case.IpPrefix prefix = new IpPrefixBuilder().setIpPrefix( + new IpPrefix(Ipv4Util.prefixForBytes(ByteArray.readBytes(buffer, Ipv4Util.IP4_LENGTH), length))) + .build(); buffer.skipBytes(PREFIX_F_LENGTH); final BitArray flags = BitArray.valueOf(buffer, FLAGS_SIZE); - builder.setProtectionAvailable(flags.get(LPA_F_OFFSET)); - builder.setProtectionInUse(flags.get(LPIU_F_OFFSET)); - builder.setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix(prefix).build()); + final SubobjectBuilder builder = new SubobjectBuilder() + .setProtectionAvailable(flags.get(LPA_F_OFFSET)) + .setProtectionInUse(flags.get(LPIU_F_OFFSET)) + .setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix(prefix).build()); return builder.build(); } @Override public void serializeSubobject(final Subobject subobject, final ByteBuf buffer) { - Preconditions.checkArgument(subobject.getSubobjectType() instanceof IpPrefixCase, "Unknown subobject instance. Passed %s. Needed IpPrefixCase.", subobject.getSubobjectType().getClass()); + Preconditions.checkArgument(subobject.getSubobjectType() instanceof IpPrefixCase, + "Unknown subobject instance. Passed %s. Needed IpPrefixCase.", subobject.getSubobjectType().getClass()); final IpPrefixSubobject specObj = ((IpPrefixCase) subobject.getSubobjectType()).getIpPrefix(); final IpPrefix prefix = specObj.getIpPrefix(); - Preconditions.checkArgument(prefix.getIpv4Prefix() != null || prefix.getIpv6Prefix() != null, "Unknown AbstractPrefix instance. Passed %s.", prefix.getClass()); + Preconditions.checkArgument(prefix.getIpv4Prefix() != null || prefix.getIpv6Prefix() != null, + "Unknown AbstractPrefix instance. Passed %s.", prefix.getClass()); if (prefix.getIpv6Prefix() != null) { new RROIpv6PrefixSubobjectParser().serializeSubobject(subobject, buffer); } else { diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROIpv6PrefixSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROIpv6PrefixSubobjectParser.java index baa7f03895..dc48654f28 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROIpv6PrefixSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROIpv6PrefixSubobjectParser.java @@ -28,7 +28,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.subobject.type.ip.prefix._case.IpPrefixBuilder; /** - * Parser for {@link IpPrefixCase} + * Parser for {@link IpPrefixCase}. */ public class RROIpv6PrefixSubobjectParser implements RROSubobjectParser, RROSubobjectSerializer { @@ -46,25 +46,28 @@ public class RROIpv6PrefixSubobjectParser implements RROSubobjectParser, RROSubo @Override public Subobject parseSubobject(final ByteBuf buffer) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final SubobjectBuilder builder = new SubobjectBuilder(); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); if (buffer.readableBytes() != CONTENT_LENGTH) { - throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + ";"); + throw new PCEPDeserializerException( + "Wrong length of array of bytes. Passed: " + buffer.readableBytes() + ";"); } final int length = buffer.getUnsignedByte(PREFIX_F_OFFSET); - final IpPrefixBuilder prefix = new IpPrefixBuilder().setIpPrefix(new IpPrefix(Ipv6Util.prefixForBytes(ByteArray.readBytes(buffer, - Ipv6Util.IPV6_LENGTH), length))); + final IpPrefixBuilder prefix = new IpPrefixBuilder().setIpPrefix( + new IpPrefix(Ipv6Util.prefixForBytes(ByteArray.readBytes(buffer, Ipv6Util.IPV6_LENGTH), length))); buffer.skipBytes(PREFIX_F_LENGTH); final BitArray flags = BitArray.valueOf(buffer, FLAGS_SIZE); - builder.setProtectionAvailable(flags.get(LPA_F_OFFSET)); - builder.setProtectionInUse(flags.get(LPIU_F_OFFSET)); - builder.setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix(prefix.build()).build()); + final SubobjectBuilder builder = new SubobjectBuilder() + .setProtectionAvailable(flags.get(LPA_F_OFFSET)) + .setProtectionInUse(flags.get(LPIU_F_OFFSET)) + .setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix(prefix.build()).build()); return builder.build(); } @Override public void serializeSubobject(final Subobject subobject, final ByteBuf buffer) { - Preconditions.checkArgument(subobject.getSubobjectType() instanceof IpPrefixCase, "Unknown subobject instance. Passed %s. Needed IpPrefixCase.", subobject.getSubobjectType().getClass()); + Preconditions.checkArgument(subobject.getSubobjectType() instanceof IpPrefixCase, + "Unknown subobject instance. Passed %s. Needed IpPrefixCase.", subobject.getSubobjectType().getClass()); final IpPrefixSubobject specObj = ((IpPrefixCase) subobject.getSubobjectType()).getIpPrefix(); final IpPrefix prefix = specObj.getIpPrefix(); final BitArray flags = new BitArray(FLAGS_SIZE); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROLabelSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROLabelSubobjectParser.java index ecb607bab1..bac5ee2a2e 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROLabelSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROLabelSubobjectParser.java @@ -49,10 +49,11 @@ public class RROLabelSubobjectParser implements RROSubobjectParser, RROSubobject @Override public Subobject parseSubobject(final ByteBuf buffer) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); if (buffer.readableBytes() < HEADER_LENGTH) { - throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + "; Expected: >" - + HEADER_LENGTH + "."); + throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + + "; Expected: >" + HEADER_LENGTH + "."); } final BitArray reserved = BitArray.valueOf(buffer, FLAGS_SIZE); @@ -62,11 +63,14 @@ public class RROLabelSubobjectParser implements RROSubobjectParser, RROSubobject if (labelType == null) { throw new PCEPDeserializerException("Unknown C-TYPE for ero label subobject. Passed: " + cType); } - final LabelBuilder builder = new LabelBuilder(); - builder.setUniDirectional(reserved.get(U_FLAG_OFFSET)); - builder.setGlobal(reserved.get(G_FLAG_OFFSET)); - builder.setLabelType(labelType); - return new SubobjectBuilder().setSubobjectType(new LabelCaseBuilder().setLabel(builder.build()).build()).build(); + final LabelBuilder builder = new LabelBuilder() + .setUniDirectional(reserved.get(U_FLAG_OFFSET)) + .setGlobal(reserved.get(G_FLAG_OFFSET)) + .setLabelType(labelType); + return new SubobjectBuilder() + .setSubobjectType(new LabelCaseBuilder() + .setLabel(builder.build()).build()) + .build(); } @Override diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROPathKey32SubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROPathKey32SubobjectParser.java index bba285a07f..380b22b747 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROPathKey32SubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROPathKey32SubobjectParser.java @@ -50,11 +50,11 @@ public class RROPathKey32SubobjectParser implements RROSubobjectParser, RROSubob } final Uint16 pathKey = ByteBufUtils.readUint16(buffer); final byte[] pceId = ByteArray.readBytes(buffer, PCE_ID_F_LENGTH); - final SubobjectBuilder builder = new SubobjectBuilder(); - final PathKeyBuilder pBuilder = new PathKeyBuilder(); - pBuilder.setPceId(new PceId(pceId)); - pBuilder.setPathKey(new PathKey(pathKey)); - builder.setSubobjectType(new PathKeyCaseBuilder().setPathKey(pBuilder.build()).build()); + final PathKeyBuilder pBuilder = new PathKeyBuilder() + .setPceId(new PceId(pceId)) + .setPathKey(new PathKey(pathKey)); + final SubobjectBuilder builder = new SubobjectBuilder() + .setSubobjectType(new PathKeyCaseBuilder().setPathKey(pBuilder.build()).build()); return builder.build(); } @@ -63,14 +63,14 @@ public class RROPathKey32SubobjectParser implements RROSubobjectParser, RROSubob checkArgument(subobject.getSubobjectType() instanceof PathKeyCase, "Unknown subobject instance. Passed %s. Needed PathKey.", subobject.getSubobjectType().getClass()); final PathKeyCase pkcase = (PathKeyCase) subobject.getSubobjectType(); - final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects - .subobject.type.path.key._case.PathKey pk = pkcase.getPathKey(); + final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route + .subobjects.subobject.type.path.key._case.PathKey pk = pkcase.getPathKey(); final ByteBuf body = Unpooled.buffer(); checkArgument(pk.getPceId() != null, "PceId is mandatory."); final byte[] pceId = pk.getPceId().getValue(); if (pceId.length == RROPathKey128SubobjectParser.PCE128_ID_F_LENGTH) { - RROPathKey128SubobjectParser.serializeSubobject(subobject,buffer); + RROPathKey128SubobjectParser.serializeSubobject(subobject, buffer); } checkArgument(pk.getPathKey() != null, "PathKey is mandatory."); writeUnsignedShort(pk.getPathKey().getValue(), body); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROUnnumberedInterfaceSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROUnnumberedInterfaceSubobjectParser.java index 8d7b3589ae..7f3d93e2c8 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROUnnumberedInterfaceSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/RROUnnumberedInterfaceSubobjectParser.java @@ -26,7 +26,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.subobject.type.unnumbered._case.UnnumberedBuilder; /** - * Parser for {@link UnnumberedCase} + * Parser for {@link UnnumberedCase}. */ public class RROUnnumberedInterfaceSubobjectParser implements RROSubobjectParser, RROSubobjectSerializer { @@ -47,15 +47,15 @@ public class RROUnnumberedInterfaceSubobjectParser implements RROSubobjectParser throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + "; Expected: " + CONTENT_LENGTH + "."); } - final SubobjectBuilder builder = new SubobjectBuilder(); final BitArray flags = BitArray.valueOf(buffer, FLAGS_SIZE); - builder.setProtectionAvailable(flags.get(LPA_F_OFFSET)); - builder.setProtectionInUse(flags.get(LPIU_F_OFFSET)); - final UnnumberedBuilder ubuilder = new UnnumberedBuilder(); buffer.skipBytes(RESERVED); - ubuilder.setRouterId(ByteBufUtils.readUint32(buffer)); - ubuilder.setInterfaceId(ByteBufUtils.readUint32(buffer)); - builder.setSubobjectType(new UnnumberedCaseBuilder().setUnnumbered(ubuilder.build()).build()); + final UnnumberedBuilder ubuilder = new UnnumberedBuilder() + .setRouterId(ByteBufUtils.readUint32(buffer)) + .setInterfaceId(ByteBufUtils.readUint32(buffer)); + final SubobjectBuilder builder = new SubobjectBuilder() + .setProtectionAvailable(flags.get(LPA_F_OFFSET)) + .setProtectionInUse(flags.get(LPIU_F_OFFSET)) + .setSubobjectType(new UnnumberedCaseBuilder().setUnnumbered(ubuilder.build()).build()); return builder.build(); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/Type1LabelParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/Type1LabelParser.java index d23b0285df..11aaab34c5 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/Type1LabelParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/Type1LabelParser.java @@ -24,7 +24,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.label.subobject.label.type.type1.label._case.Type1LabelBuilder; /** - * Parser for {@link Type1LabelCase} + * Parser for {@link Type1LabelCase}. */ public class Type1LabelParser implements LabelParser, LabelSerializer { diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/WavebandSwitchingLabelParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/WavebandSwitchingLabelParser.java index 9b1869c66a..7517993f9a 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/WavebandSwitchingLabelParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/WavebandSwitchingLabelParser.java @@ -24,7 +24,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.label.subobject.label.type.waveband.switching.label._case.WavebandSwitchingLabelBuilder; /** - * Parser for {@link WavebandSwitchingLabelCase} + * Parser for {@link WavebandSwitchingLabelCase}. */ public class WavebandSwitchingLabelParser implements LabelParser, LabelSerializer { @@ -53,7 +53,8 @@ public class WavebandSwitchingLabelParser implements LabelParser, LabelSerialize } @Override - public void serializeLabel(final boolean unidirectional, final boolean global, final LabelType subobject, final ByteBuf buffer) { + public void serializeLabel(final boolean unidirectional, final boolean global, final LabelType subobject, + final ByteBuf buffer) { checkArgument(subobject instanceof WavebandSwitchingLabelCase, "Unknown Label Subobject instance. Passed {}. Needed WavebandSwitchingLabelCase.", subobject.getClass()); final WavebandSwitchingLabel obj = ((WavebandSwitchingLabelCase) subobject).getWavebandSwitchingLabel(); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROAsNumberSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROAsNumberSubobjectParser.java index ae7fff6d57..00acaaa0f5 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROAsNumberSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROAsNumberSubobjectParser.java @@ -18,7 +18,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.AsNumberCase; /** - * Parser for {@link AsNumberCase} + * Parser for {@link AsNumberCase}. */ public class XROAsNumberSubobjectParser implements XROSubobjectParser, XROSubobjectSerializer { @@ -26,12 +26,14 @@ public class XROAsNumberSubobjectParser implements XROSubobjectParser, XROSubobj @Override public Subobject parseSubobject(final ByteBuf buffer, final boolean mandatory) throws PCEPDeserializerException { - return new SubobjectBuilder().setMandatory(mandatory).setSubobjectType(AsNumberCaseParser.parseSubobject(buffer)).build(); + return new SubobjectBuilder().setMandatory(mandatory) + .setSubobjectType(AsNumberCaseParser.parseSubobject(buffer)).build(); } @Override public void serializeSubobject(final Subobject subobject, final ByteBuf buffer) { - Preconditions.checkArgument(subobject.getSubobjectType() instanceof AsNumberCase, "Unknown subobject instance. Passed %s. Needed AsNumberCase.", subobject.getSubobjectType().getClass()); + Preconditions.checkArgument(subobject.getSubobjectType() instanceof AsNumberCase, + "Unknown subobject instance. Passed %s. Needed AsNumberCase.", subobject.getSubobjectType().getClass()); final ByteBuf body = AsNumberCaseParser.serializeSubobject((AsNumberCase) subobject.getSubobjectType()); XROSubobjectUtil.formatSubobject(TYPE, subobject.isMandatory(), body, buffer); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROIpv4PrefixSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROIpv4PrefixSubobjectParser.java index 1f3641503e..4977a35dd3 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROIpv4PrefixSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROIpv4PrefixSubobjectParser.java @@ -28,9 +28,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.IpPrefixCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.IpPrefixCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.ip.prefix._case.IpPrefixBuilder; +import org.opendaylight.yangtools.yang.common.Uint8; /** - * Parser for {@link IpPrefixCase} + * Parser for {@link IpPrefixCase}. */ public class XROIpv4PrefixSubobjectParser implements XROSubobjectParser, XROSubobjectSerializer { @@ -45,8 +46,6 @@ public class XROIpv4PrefixSubobjectParser implements XROSubobjectParser, XROSubo @Override public Subobject parseSubobject(final ByteBuf buffer, final boolean mandatory) throws PCEPDeserializerException { checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Cannot be null or empty."); - final SubobjectBuilder builder = new SubobjectBuilder(); - builder.setMandatory(mandatory); if (buffer.readableBytes() != CONTENT4_LENGTH) { throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + ";"); @@ -55,9 +54,11 @@ public class XROIpv4PrefixSubobjectParser implements XROSubobjectParser, XROSubo final IpPrefixBuilder prefix = new IpPrefixBuilder() .setIpPrefix(new IpPrefix(Ipv4Util.prefixForBytes(ByteArray.readBytes(buffer, Ipv4Util.IP4_LENGTH), length))); - builder.setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix(prefix.build()).build()); buffer.skipBytes(PREFIX_F_LENGTH); - builder.setAttribute(Attribute.forValue(buffer.readUnsignedByte())); + final SubobjectBuilder builder = new SubobjectBuilder() + .setMandatory(mandatory) + .setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix(prefix.build()).build()) + .setAttribute(Attribute.forValue(buffer.readUnsignedByte())); return builder.build(); } @@ -76,7 +77,7 @@ public class XROIpv4PrefixSubobjectParser implements XROSubobjectParser, XROSubo Preconditions.checkArgument(prefix.getIpv4Prefix() != null, "Ipv4Prefix is mandatory."); writeIpv4Prefix(prefix.getIpv4Prefix(), body); Preconditions.checkArgument(subobject.getAttribute() != null, "Attribute is mandatory."); - writeUnsignedByte((short) subobject.getAttribute().getIntValue(), body); + writeUnsignedByte(Uint8.valueOf(subobject.getAttribute().getIntValue()), body); XROSubobjectUtil.formatSubobject(TYPE, subobject.isMandatory(), body, buffer); } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROIpv6PrefixSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROIpv6PrefixSubobjectParser.java index 05fdaf49bd..513d700834 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROIpv6PrefixSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROIpv6PrefixSubobjectParser.java @@ -27,9 +27,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.IpPrefixCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.IpPrefixCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.ip.prefix._case.IpPrefixBuilder; +import org.opendaylight.yangtools.yang.common.Uint8; /** - * Parser for {@link IpPrefixCase} + * Parser for {@link IpPrefixCase}. */ public class XROIpv6PrefixSubobjectParser implements XROSubobjectParser, XROSubobjectSerializer { @@ -43,31 +44,34 @@ public class XROIpv6PrefixSubobjectParser implements XROSubobjectParser, XROSubo @Override public Subobject parseSubobject(final ByteBuf buffer, final boolean mandatory) throws PCEPDeserializerException { - Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); - final SubobjectBuilder builder = new SubobjectBuilder(); - builder.setMandatory(mandatory); + Preconditions.checkArgument(buffer != null && buffer.isReadable(), + "Array of bytes is mandatory. Can't be null or empty."); if (buffer.readableBytes() != CONTENT6_LENGTH) { - throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + ";"); + throw new PCEPDeserializerException( + "Wrong length of array of bytes. Passed: " + buffer.readableBytes() + ";"); } final int length = buffer.getUnsignedByte(PREFIX6_F_OFFSET); - final IpPrefixBuilder prefix = new IpPrefixBuilder().setIpPrefix(new IpPrefix(Ipv6Util.prefixForBytes(ByteArray.readBytes(buffer, - Ipv6Util.IPV6_LENGTH), length))); - builder.setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix(prefix.build()).build()); + final IpPrefixBuilder prefix = new IpPrefixBuilder().setIpPrefix( + new IpPrefix(Ipv6Util.prefixForBytes(ByteArray.readBytes(buffer, Ipv6Util.IPV6_LENGTH), length))); buffer.skipBytes(PREFIX_F_LENGTH); - builder.setAttribute(Attribute.forValue(buffer.readUnsignedByte())); + final SubobjectBuilder builder = new SubobjectBuilder() + .setMandatory(mandatory) + .setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix(prefix.build()).build()) + .setAttribute(Attribute.forValue(buffer.readUnsignedByte())); return builder.build(); } @Override public void serializeSubobject(final Subobject subobject, final ByteBuf buffer) { - Preconditions.checkArgument(subobject.getSubobjectType() instanceof IpPrefixCase, "Unknown subobject instance. Passed %s. Needed IpPrefixCase.", subobject.getSubobjectType().getClass()); + Preconditions.checkArgument(subobject.getSubobjectType() instanceof IpPrefixCase, + "Unknown subobject instance. Passed %s. Needed IpPrefixCase.", subobject.getSubobjectType().getClass()); final IpPrefixSubobject specObj = ((IpPrefixCase) subobject.getSubobjectType()).getIpPrefix(); final IpPrefix prefix = specObj.getIpPrefix(); final ByteBuf body = Unpooled.buffer(CONTENT6_LENGTH); Preconditions.checkArgument(prefix.getIpv6Prefix() != null, "Ipv6Prefix is mandatory."); writeIpv6Prefix(prefix.getIpv6Prefix(), body); Preconditions.checkArgument(subobject.getAttribute() != null, "Attribute is mandatory."); - writeUnsignedByte((short) subobject.getAttribute().getIntValue(), body); + writeUnsignedByte(Uint8.valueOf(subobject.getAttribute().getIntValue()), body); XROSubobjectUtil.formatSubobject(TYPE, subobject.isMandatory(), body, buffer); } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROPathKey128SubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROPathKey128SubobjectParser.java index 8433fb9eaa..b018c691ad 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROPathKey128SubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROPathKey128SubobjectParser.java @@ -27,7 +27,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yangtools.yang.common.Uint16; /** - * Parser for {@link PathKey} + * Parser for {@link PathKey}. */ public class XROPathKey128SubobjectParser implements XROSubobjectParser { @@ -46,12 +46,12 @@ public class XROPathKey128SubobjectParser implements XROSubobjectParser { } final Uint16 pathKey = ByteBufUtils.readUint16(buffer); final byte[] pceId = ByteArray.readBytes(buffer, PCE128_ID_F_LENGTH); - final SubobjectBuilder builder = new SubobjectBuilder(); - final PathKeyBuilder pBuilder = new PathKeyBuilder(); - pBuilder.setPceId(new PceId(pceId)); - pBuilder.setPathKey(new PathKey(pathKey)); - builder.setMandatory(mandatory); - builder.setSubobjectType(new PathKeyCaseBuilder().setPathKey(pBuilder.build()).build()); + final PathKeyBuilder pBuilder = new PathKeyBuilder() + .setPceId(new PceId(pceId)) + .setPathKey(new PathKey(pathKey)); + final SubobjectBuilder builder = new SubobjectBuilder() + .setMandatory(mandatory) + .setSubobjectType(new PathKeyCaseBuilder().setPathKey(pBuilder.build()).build()); return builder.build(); } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROPathKey32SubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROPathKey32SubobjectParser.java index 1ccdb4d9f6..638c12cf39 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROPathKey32SubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROPathKey32SubobjectParser.java @@ -28,7 +28,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yangtools.yang.common.Uint16; /** - * Parser for {@link PathKey} + * Parser for {@link PathKey}. */ public class XROPathKey32SubobjectParser implements XROSubobjectParser, XROSubobjectSerializer { @@ -47,12 +47,12 @@ public class XROPathKey32SubobjectParser implements XROSubobjectParser, XROSubob } final Uint16 pathKey = ByteBufUtils.readUint16(buffer); final byte[] pceId = ByteArray.readBytes(buffer, PCE_ID_F_LENGTH); - final SubobjectBuilder builder = new SubobjectBuilder(); - final PathKeyBuilder pBuilder = new PathKeyBuilder(); - pBuilder.setPceId(new PceId(pceId)); - pBuilder.setPathKey(new PathKey(pathKey)); - builder.setMandatory(mandatory); - builder.setSubobjectType(new PathKeyCaseBuilder().setPathKey(pBuilder.build()).build()); + final PathKeyBuilder pBuilder = new PathKeyBuilder() + .setPceId(new PceId(pceId)) + .setPathKey(new PathKey(pathKey)); + final SubobjectBuilder builder = new SubobjectBuilder() + .setMandatory(mandatory) + .setSubobjectType(new PathKeyCaseBuilder().setPathKey(pBuilder.build()).build()); return builder.build(); } @@ -68,7 +68,7 @@ public class XROPathKey32SubobjectParser implements XROSubobjectParser, XROSubob final byte[] pceId = pk.getPceId().getValue(); if (pceId.length == XROPathKey128SubobjectParser.PCE128_ID_F_LENGTH) { - XROPathKey128SubobjectParser.serializeSubobject(subobject,buffer); + XROPathKey128SubobjectParser.serializeSubobject(subobject, buffer); } checkArgument(pk.getPathKey() != null, "PathKey is mandatory."); writeUnsignedShort(pk.getPathKey().getValue(), body); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROSRLGSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROSrlgSubobjectParser.java similarity index 95% rename from pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROSRLGSubobjectParser.java rename to pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROSrlgSubobjectParser.java index 4b7d76f728..aab5d4f4b9 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROSRLGSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROSrlgSubobjectParser.java @@ -29,9 +29,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yangtools.yang.common.Uint8; /** - * Parser for {@link SrlgCase} + * Parser for {@link SrlgCase}. */ -public class XROSRLGSubobjectParser implements XROSubobjectParser, XROSubobjectSerializer { +public class XROSrlgSubobjectParser implements XROSubobjectParser, XROSubobjectSerializer { public static final int TYPE = 34; @@ -66,7 +66,7 @@ public class XROSRLGSubobjectParser implements XROSubobjectParser, XROSubobjectS writeUnsignedInt(specObj.getSrlgId().getValue(), body); checkArgument(subobject.getAttribute() != null, "Attribute is mandatory."); writeUnsignedByte((Uint8) null, body); - writeUnsignedByte((short) subobject.getAttribute().getIntValue(), body); + writeUnsignedByte(Uint8.valueOf(subobject.getAttribute().getIntValue()), body); XROSubobjectUtil.formatSubobject(TYPE, subobject.isMandatory(), body, buffer); } } diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROUnnumberedInterfaceSubobjectParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROUnnumberedInterfaceSubobjectParser.java index 350a9d35d5..5c36bcddf6 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROUnnumberedInterfaceSubobjectParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/subobject/XROUnnumberedInterfaceSubobjectParser.java @@ -25,9 +25,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.UnnumberedCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.UnnumberedCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.basic.explicit.route.subobjects.subobject.type.unnumbered._case.UnnumberedBuilder; +import org.opendaylight.yangtools.yang.common.Uint8; /** - * Parser for {@link UnnumberedCase} + * Parser for {@link UnnumberedCase}. */ public class XROUnnumberedInterfaceSubobjectParser implements XROSubobjectParser, XROSubobjectSerializer { @@ -45,13 +46,14 @@ public class XROUnnumberedInterfaceSubobjectParser implements XROSubobjectParser + "; Expected: " + CONTENT_LENGTH + "."); } buffer.readerIndex(buffer.readerIndex() + RESERVED); - final SubobjectBuilder builder = new SubobjectBuilder(); - builder.setMandatory(mandatory); - builder.setAttribute(Attribute.forValue(buffer.readUnsignedByte())); - final UnnumberedBuilder ubuilder = new UnnumberedBuilder(); - ubuilder.setRouterId(ByteBufUtils.readUint32(buffer)); - ubuilder.setInterfaceId(ByteBufUtils.readUint32(buffer)); - builder.setSubobjectType(new UnnumberedCaseBuilder().setUnnumbered(ubuilder.build()).build()); + final Attribute attr = Attribute.forValue(buffer.readUnsignedByte()); + final UnnumberedBuilder ubuilder = new UnnumberedBuilder() + .setRouterId(ByteBufUtils.readUint32(buffer)) + .setInterfaceId(ByteBufUtils.readUint32(buffer)); + final SubobjectBuilder builder = new SubobjectBuilder() + .setMandatory(mandatory) + .setAttribute(attr) + .setSubobjectType(new UnnumberedCaseBuilder().setUnnumbered(ubuilder.build()).build()); return builder.build(); } @@ -62,7 +64,8 @@ public class XROUnnumberedInterfaceSubobjectParser implements XROSubobjectParser final UnnumberedSubobject specObj = ((UnnumberedCase) subobject.getSubobjectType()).getUnnumbered(); final ByteBuf body = Unpooled.buffer(CONTENT_LENGTH); body.writeZero(RESERVED); - writeUnsignedByte(subobject.getAttribute() != null ? (short) subobject.getAttribute().getIntValue() : null, + writeUnsignedByte( + subobject.getAttribute() != null ? Uint8.valueOf(subobject.getAttribute().getIntValue()) : (Uint8) null, body); checkArgument(specObj.getRouterId() != null, "RouterId is mandatory."); writeUnsignedInt(specObj.getRouterId(), body); diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/AbstractVendorInformationTlvParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/AbstractVendorInformationTlvParser.java index 4f3e1138fb..d0269e0d1e 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/AbstractVendorInformationTlvParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/AbstractVendorInformationTlvParser.java @@ -24,7 +24,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.vendor.information.tlvs.VendorInformationTlv; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.vendor.information.tlvs.VendorInformationTlvBuilder; -public abstract class AbstractVendorInformationTlvParser implements TlvSerializer, TlvParser, EnterpriseSpecificInformationParser { +public abstract class AbstractVendorInformationTlvParser + implements TlvSerializer, TlvParser, EnterpriseSpecificInformationParser { @Override public final void serializeTlv(final Tlv tlv, final ByteBuf buffer) { diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/NoPathVectorTlvParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/NoPathVectorTlvParser.java index 8c6a55f839..042175fe13 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/NoPathVectorTlvParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/NoPathVectorTlvParser.java @@ -21,7 +21,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcrep.message.pcrep.message.replies.result.failure._case.no.path.tlvs.NoPathVectorBuilder; /** - * Parser for {@link NoPathVector} + * Parser for {@link NoPathVector}. */ public class NoPathVectorTlvParser implements TlvParser, TlvSerializer { @@ -44,12 +44,14 @@ public class NoPathVectorTlvParser implements TlvParser, TlvSerializer { return null; } if (buffer.readableBytes() != FLAGS_SIZE / Byte.SIZE) { - throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + "; Expected: >=" - + FLAGS_SIZE / Byte.SIZE + "."); + throw new PCEPDeserializerException("Wrong length of array of bytes. Passed: " + buffer.readableBytes() + + "; Expected: >=" + FLAGS_SIZE / Byte.SIZE + "."); } final BitArray flags = BitArray.valueOf(buffer, FLAGS_SIZE); - return new NoPathVectorBuilder().setFlags( - new Flags(flags.get(CHAIN_UNAVAILABLE), flags.get(NO_GCO_MIGRATION_PATH), flags.get(NO_GCO_SOLUTION), flags.get(REACHABLITY_PROBLEM), flags.get(PATH_KEY), flags.get(PCE_UNAVAILABLE), flags.get(UNKNOWN_DEST), flags.get(UNKNOWN_SRC))).build(); + return new NoPathVectorBuilder().setFlags(new Flags(flags.get(CHAIN_UNAVAILABLE), + flags.get(NO_GCO_MIGRATION_PATH), flags.get(NO_GCO_SOLUTION), flags.get(REACHABLITY_PROBLEM), + flags.get(PATH_KEY), flags.get(PCE_UNAVAILABLE), flags.get(UNKNOWN_DEST), flags.get(UNKNOWN_SRC))) + .build(); } @Override diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/OFListTlvParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/OFListTlvParser.java index a8e575a039..bce1fb3249 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/OFListTlvParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/OFListTlvParser.java @@ -25,7 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.of.list.tlv.OfListBuilder; /** - * Parser for {@link OfList} + * Parser for {@link OfList}. */ public class OFListTlvParser implements TlvParser, TlvSerializer { diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/OrderTlvParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/OrderTlvParser.java index 5dff66950e..7ca1d06e4b 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/OrderTlvParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/OrderTlvParser.java @@ -22,7 +22,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.order.tlv.OrderBuilder; /** - * Parser for {@link Order} + * Parser for {@link Order}. */ public class OrderTlvParser implements TlvParser, TlvSerializer { diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/OverloadedDurationTlvParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/OverloadedDurationTlvParser.java index e216fb268a..7877c200f7 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/OverloadedDurationTlvParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/OverloadedDurationTlvParser.java @@ -22,7 +22,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.overload.duration.tlv.OverloadDurationBuilder; /** - * Parser for {@link OverloadDuration} + * Parser for {@link OverloadDuration}. */ public class OverloadedDurationTlvParser implements TlvParser, TlvSerializer { diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/ReqMissingTlvParser.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/ReqMissingTlvParser.java index 93687af9ab..d372599659 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/ReqMissingTlvParser.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/tlv/ReqMissingTlvParser.java @@ -23,7 +23,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.req.missing.tlv.ReqMissingBuilder; /** - * Parser {@link ReqMissing} + * Parser {@link ReqMissing}. */ public class ReqMissingTlvParser implements TlvParser, TlvSerializer { diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/util/Util.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/util/Util.java index 43c6c93fd2..5ba2d8ec76 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/util/Util.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/util/Util.java @@ -17,7 +17,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.proc.time.object.ProcTime; /** - * Utilities used in pcep-base-parser + * Utilities used in pcep-base-parser. */ public final class Util { @@ -32,15 +32,14 @@ public final class Util { metricPceBuilder.setProcTime((ProcTime) obj); return State.PROC_TIME; } - // fall-through + // fallthrough case PROC_TIME : if (obj instanceof Overload) { metricPceBuilder.setOverload((Overload) obj); return State.OVERLOAD; } - // fall-through + // fallthrough case OVERLOAD : - // fall-through case END : return State.END; default: diff --git a/pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPXROSubobjectParserTest.java b/pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPXROSubobjectParserTest.java index 48828ce105..4ff958db33 100644 --- a/pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPXROSubobjectParserTest.java +++ b/pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPXROSubobjectParserTest.java @@ -19,7 +19,7 @@ import org.opendaylight.protocol.pcep.parser.subobject.XROIpv4PrefixSubobjectPar import org.opendaylight.protocol.pcep.parser.subobject.XROIpv6PrefixSubobjectParser; import org.opendaylight.protocol.pcep.parser.subobject.XROPathKey128SubobjectParser; import org.opendaylight.protocol.pcep.parser.subobject.XROPathKey32SubobjectParser; -import org.opendaylight.protocol.pcep.parser.subobject.XROSRLGSubobjectParser; +import org.opendaylight.protocol.pcep.parser.subobject.XROSrlgSubobjectParser; import org.opendaylight.protocol.pcep.parser.subobject.XROUnnumberedInterfaceSubobjectParser; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.protocol.util.ByteArray; @@ -103,18 +103,18 @@ public class PCEPXROSubobjectParserTest { @Test public void testXROIp6PrefixSubobject() throws PCEPDeserializerException { final XROIpv6PrefixSubobjectParser parser = new XROIpv6PrefixSubobjectParser(); - final SubobjectBuilder subs = new SubobjectBuilder(); - subs.setMandatory(true); - subs.setAttribute(Attribute.Node); - subs.setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix( - new IpPrefixBuilder().setIpPrefix( - new IpPrefix(Ipv6Util.prefixForBytes(new byte[] { - (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, - (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, - (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, - (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF - }, 22))) - .build()).build()); + final SubobjectBuilder subs = new SubobjectBuilder() + .setMandatory(true) + .setAttribute(Attribute.Node) + .setSubobjectType(new IpPrefixCaseBuilder().setIpPrefix( + new IpPrefixBuilder().setIpPrefix( + new IpPrefix(Ipv6Util.prefixForBytes(new byte[] { + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF + }, 22))) + .build()).build()); assertEquals( subs.build(), parser.parseSubobject(Unpooled.wrappedBuffer(ByteArray.cutBytes(IP6_PREFIX_BYTES, 2)), true)); final ByteBuf buff = Unpooled.buffer(); @@ -137,7 +137,7 @@ public class PCEPXROSubobjectParserTest { @Test public void testXROSrlgSubobject() throws PCEPDeserializerException { - final XROSRLGSubobjectParser parser = new XROSRLGSubobjectParser(); + final XROSrlgSubobjectParser parser = new XROSrlgSubobjectParser(); final SubobjectBuilder subs = new SubobjectBuilder() .setMandatory(true) .setAttribute(Attribute.Srlg) @@ -227,14 +227,14 @@ public class PCEPXROSubobjectParserTest { @Test public void testXROPathKey32Subobject() throws PCEPDeserializerException { final XROPathKey32SubobjectParser parser = new XROPathKey32SubobjectParser(); - final SubobjectBuilder subs = new SubobjectBuilder(); - subs.setMandatory(true); - final PathKeyBuilder pBuilder = new PathKeyBuilder(); - pBuilder.setPceId(new PceId(new byte[] { (byte) 0x12, (byte) 0x34, (byte) 0x50, (byte) 0x00 })); - pBuilder.setPathKey(new PathKey(Uint16.valueOf(4660))); - subs.setSubobjectType(new PathKeyCaseBuilder().setPathKey(pBuilder.build()).build()); - assertEquals(subs.build(), - parser.parseSubobject(Unpooled.wrappedBuffer(ByteArray.cutBytes(PATH_KEY32_BYTES, 2)), true)); + final PathKeyBuilder pBuilder = new PathKeyBuilder() + .setPceId(new PceId(new byte[] { (byte) 0x12, (byte) 0x34, (byte) 0x50, (byte) 0x00 })) + .setPathKey(new PathKey(Uint16.valueOf(4660))); + final SubobjectBuilder subs = new SubobjectBuilder() + .setMandatory(true) + .setSubobjectType(new PathKeyCaseBuilder().setPathKey(pBuilder.build()).build()); + assertEquals( + subs.build(),parser.parseSubobject(Unpooled.wrappedBuffer(ByteArray.cutBytes(PATH_KEY32_BYTES, 2)), true)); final ByteBuf buff = Unpooled.buffer(); parser.serializeSubobject(subs.build(), buff); assertArrayEquals(PATH_KEY32_BYTES, ByteArray.getAllBytes(buff)); @@ -256,16 +256,19 @@ public class PCEPXROSubobjectParserTest { @Test public void testXROPathKey128Subobject() throws PCEPDeserializerException { final XROPathKey128SubobjectParser parser = new XROPathKey128SubobjectParser(); - final SubobjectBuilder subs = new SubobjectBuilder(); - subs.setMandatory(true); - final PathKeyBuilder pBuilder = new PathKeyBuilder(); - pBuilder.setPceId(new PceId(new byte[] { - (byte) 0x12, (byte) 0x34, (byte) 0x56, (byte) 0x78, (byte) 0x9A, (byte) 0xBC, (byte) 0xDE, (byte) 0x12, - (byte) 0x34, (byte) 0x54, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00 - })); - pBuilder.setPathKey(new PathKey(Uint16.valueOf(4660))); - subs.setSubobjectType(new PathKeyCaseBuilder().setPathKey(pBuilder.build()).build()); - assertEquals(subs.build(), + final PathKeyBuilder pBuilder = new PathKeyBuilder() + .setPceId(new PceId(new byte[] { + (byte) 0x12, (byte) 0x34, (byte) 0x56, (byte) 0x78, + (byte) 0x9A, (byte) 0xBC, (byte) 0xDE, (byte) 0x12, + (byte) 0x34, (byte) 0x54, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00 + })) + .setPathKey(new PathKey(Uint16.valueOf(4660))); + final SubobjectBuilder subs = new SubobjectBuilder() + .setMandatory(true) + .setSubobjectType(new PathKeyCaseBuilder().setPathKey(pBuilder.build()).build()); + assertEquals( + subs.build(), parser.parseSubobject(Unpooled.wrappedBuffer(ByteArray.cutBytes(PATH_KEY128_BYTES, 2)), true)); final ByteBuf buff = Unpooled.buffer(); XROPathKey128SubobjectParser.serializeSubobject(subs.build(), buff); -- 2.36.6