package rocks.inspectit.server.processor.impl;
import javax.persistence.EntityManager;
import rocks.inspectit.server.processor.AbstractCmrDataProcessor;
import rocks.inspectit.shared.all.communication.DefaultData;
import rocks.inspectit.shared.all.communication.data.ExceptionSensorData;
/**
* Processor that connects error messages in the {@link ExceptionSensorData}.
*
* @author Ivan Senic
*
*/
public class ExceptionMessageCmrProcessor extends AbstractCmrDataProcessor {
/**
* {@inheritDoc}
*/
@Override
protected void processData(DefaultData defaultData, EntityManager entityManager) {
connectErrorMessagesInExceptionData((ExceptionSensorData) defaultData);
}
/**
* {@inheritDoc}
*/
@Override
public boolean canBeProcessed(DefaultData defaultData) {
return defaultData instanceof ExceptionSensorData;
}
/**
* Connects exception message between linked exception data.
*
* @param exceptionSensorData
* Parent exception data, thus the one that has exception event CREATED.
*/
private void connectErrorMessagesInExceptionData(ExceptionSensorData exceptionSensorData) {
ExceptionSensorData child = exceptionSensorData.getChild();
if (null != child) {
child.setErrorMessage(exceptionSensorData.getErrorMessage());
connectErrorMessagesInExceptionData(child);
}
}
}