+ //currently in yang , generation of builders does not support an interface
+ //so each notification is put in a separate if-else
+ if (errorType == ErrorType.HelloFailed) {
+ HelloFailedErrorNotificationBuilder builder = new HelloFailedErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.BadRequest) {
+ BadRequestErrorNotificationBuilder builder = new BadRequestErrorNotificationBuilder ();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.BadAction) {
+ BadActionErrorNotificationBuilder builder = new BadActionErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.BadInstruction) {
+ BadInstructionErrorNotificationBuilder builder = new BadInstructionErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.BadMatch) {
+ BadMatchErrorNotificationBuilder builder = new BadMatchErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.FlowModFailed) {
+ FlowModErrorNotificationBuilder builder = new FlowModErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.GroupModFailed) {
+ GroupModErrorNotificationBuilder builder = new GroupModErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.PortModFailed) {
+ PortModErrorNotificationBuilder builder = new PortModErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.QueueOpFailed) {
+ QueueOpErrorNotificationBuilder builder = new QueueOpErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.SwitchConfigFailed) {
+ SwitchConfigErrorNotificationBuilder builder = new SwitchConfigErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.RoleRequestFailed) {
+ RoleRequestErrorNotificationBuilder builder = new RoleRequestErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.MeterModFailed) {
+ MeterModErrorNotificationBuilder builder = new MeterModErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.TableModFailed) {
+ TableModErrorNotificationBuilder builder = new TableModErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.TableFeaturesFailed) {
+ TableFeaturesErrorNotificationBuilder builder = new TableFeaturesErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();
+ } else if (errorType == ErrorType.Experimenter) {
+ ExperimenterErrorNotificationBuilder builder = new ExperimenterErrorNotificationBuilder();
+ builder.setTransactionId(txnId);
+ builder.setType(errorType);
+ builder.setCode(message.getCode());
+ builder.setNode(node);
+ if (message.getData() != null) {
+ builder.setData(new String(message.getData()));
+ }
+ outErrorMessage = builder.build();