@Override
public List<DataObject> translate(SwitchConnectionDistinguisher cookie, SessionContext sc, OfHeader msg) {
if (msg instanceof ErrorMessage) {
ErrorMessage message = (ErrorMessage) msg;
List<DataObject> list = new CopyOnWriteArrayList<DataObject>();
if (LOG.isDebugEnabled()) {
String hexData = "n/a";
if (message.getData() != null) {
hexData = ByteUtil.bytesToHexstring(message.getData(), " ");
}
LOG.debug(" Error Message received: type={}[{}], code={}[{}], data=[{}] ", message.getType(),
message.getTypeString(), message.getCode(), message.getCodeString(),
hexData);
}
ErrorType type = decodeErrorType(message.getType());
NodeRef node = new NodeRef(
InventoryDataServiceUtil.identifierFromDatapathId(
sc.getFeatures().getDatapathId()));
list.add(getGranularNodeErrors(message, type, node));
return list;
} else {
LOG.error("Message is not of Error Message ");
return Collections.emptyList();
}
}