X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=pcep%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fprotocol%2Fpcep%2Fimpl%2Fspi%2FUtil.java;h=e73289c660102f807d71acdf5f69d7f27f588b1d;hb=refs%2Fchanges%2F01%2F86701%2F4;hp=62bc03c892e2c5d6f7de267a60afa74606934a68;hpb=6251dfa737d5dd2a99117c61eba1ec7eef90fa0d;p=bgpcep.git diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/spi/Util.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/spi/Util.java index 62bc03c892..e73289c660 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/spi/Util.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/spi/Util.java @@ -7,88 +7,42 @@ */ package org.opendaylight.protocol.pcep.impl.spi; -import java.util.Arrays; -import java.util.List; -import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; +import java.util.Collections; import org.opendaylight.protocol.pcep.spi.PCEPErrors; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.PcerrBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Object; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.monitoring.metrics.MetricPce; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.monitoring.metrics.MetricPceBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.overload.object.Overload; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pce.id.object.PceId; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObject; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObjectBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.PcerrMessageBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorsBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.SessionCaseBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.session._case.SessionBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.proc.time.object.ProcTime; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev181109.PcerrBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.Message; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.object.Open; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcep.error.object.ErrorObject; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcep.error.object.ErrorObjectBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcerr.message.PcerrMessageBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcerr.message.pcerr.message.ErrorType; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcerr.message.pcerr.message.ErrorsBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcerr.message.pcerr.message.error.type.SessionCaseBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcerr.message.pcerr.message.error.type.session._case.SessionBuilder; /** - * Utilities used in pcep-impl + * Utilities used in pcep-impl. */ public final class Util { - private Util() { - throw new UnsupportedOperationException(); + // Hidden on purpose } - public static Message createErrorMessage(final PCEPErrors e, final Open t) { + public static Message createErrorMessage(final PCEPErrors error, final Open openObject) { final PcerrBuilder errMessageBuilder = new PcerrBuilder(); - final ErrorObject err = new ErrorObjectBuilder().setType(e.getErrorType()).setValue(e.getErrorValue()).build(); - if (t == null) { - return errMessageBuilder.setPcerrMessage( - new PcerrMessageBuilder().setErrors(Arrays.asList(new ErrorsBuilder().setErrorObject(err).build())).build()).build(); - } else { - final ErrorType type = new SessionCaseBuilder().setSession(new SessionBuilder().setOpen(t).build()).build(); - return errMessageBuilder.setPcerrMessage( - new PcerrMessageBuilder().setErrors(Arrays.asList(new ErrorsBuilder().setErrorObject(err).build())).setErrorType(type).build()).build(); + final ErrorObject err = + new ErrorObjectBuilder().setType(error.getErrorType()).setValue(error.getErrorValue()).build(); + if (openObject == null) { + return errMessageBuilder.setPcerrMessage(new PcerrMessageBuilder().setErrors(Collections.singletonList( + new ErrorsBuilder().setErrorObject(err).build())).build()).build(); } - } - - private static State insertObject(final MetricPceBuilder metricPceBuilder, final State state, final Object obj) { - switch(state) { - case START : - if (obj instanceof ProcTime) { - metricPceBuilder.setProcTime((ProcTime) obj); - return State.PROC_TIME; - } - case PROC_TIME : - if (obj instanceof Overload) { - metricPceBuilder.setOverload((Overload) obj); - return State.OVERLOAD; - } - case OVERLOAD : - case END : - return State.END; - default: - return state; - } - } - - public static MetricPce validateMonitoringMetrics(final List objects) throws PCEPDeserializerException { - final MetricPceBuilder metricPceBuilder = new MetricPceBuilder(); - if (!(objects.get(0) instanceof PceId)) { - throw new PCEPDeserializerException("metric-pce-list must start with PCE-ID object."); - } - metricPceBuilder.setPceId((PceId) (objects.get(0))); - objects.remove(0); - State state = State.START; - while (!objects.isEmpty() && !state.equals(State.END)) { - final Object obj = objects.get(0); - state = insertObject(metricPceBuilder, state, obj); - if (!state.equals(State.END)) { - objects.remove(0); - } - } - return metricPceBuilder.build(); - } - private enum State { - START, PROC_TIME, OVERLOAD, END; + final ErrorType type = + new SessionCaseBuilder().setSession(new SessionBuilder().setOpen(openObject).build()).build(); + return errMessageBuilder.setPcerrMessage( + new PcerrMessageBuilder() + .setErrors(Collections.singletonList(new ErrorsBuilder().setErrorObject(err).build())) + .setErrorType(type).build()) + .build(); } }