package org.onap.cps.ncmp.api.impl.event.lcm;
import java.util.UUID;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.onap.cps.ncmp.api.impl.utils.EventDateTimeFormatter;
+import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle;
import org.onap.ncmp.cmhandle.event.lcm.Event;
import org.onap.ncmp.cmhandle.event.lcm.LcmEvent;
+import org.onap.ncmp.cmhandle.event.lcm.Values;
import org.springframework.stereotype.Component;
public class LcmEventsCreator {
/**
- * Populate LcmEvent.
+ * Populate Lifecycle Management Event.
*
- * @param cmHandleId Cm Handle Identifier
- * @return Populated Lcm Event
+ * @param cmHandleId cm handle identifier
+ * @param targetNcmpServiceCmHandle target ncmp service cmhandle
+ * @param existingNcmpServiceCmHandle existing ncmp service cmhandle
+ * @return Populated LcmEvent
*/
- public LcmEvent populateLcmEvent(final String cmHandleId) {
- return createLcmEvent(cmHandleId);
+ public LcmEvent populateLcmEvent(final String cmHandleId, final NcmpServiceCmHandle targetNcmpServiceCmHandle,
+ final NcmpServiceCmHandle existingNcmpServiceCmHandle) {
+ return createLcmEvent(cmHandleId, targetNcmpServiceCmHandle, existingNcmpServiceCmHandle);
}
- private LcmEvent createLcmEvent(final String cmHandleId) {
- final LcmEvent lcmEvent = lcmEventHeader(cmHandleId);
- lcmEvent.setEvent(lcmEventPayload(cmHandleId));
+ private LcmEvent createLcmEvent(final String cmHandleId, final NcmpServiceCmHandle targetNcmpServiceCmHandle,
+ final NcmpServiceCmHandle existingNcmpServiceCmHandle) {
+ final LcmEventType lcmEventType =
+ LcmEventsCreatorHelper.determineEventType(targetNcmpServiceCmHandle, existingNcmpServiceCmHandle);
+ final LcmEvent lcmEvent = lcmEventHeader(cmHandleId, lcmEventType);
+ lcmEvent.setEvent(
+ lcmEventPayload(cmHandleId, targetNcmpServiceCmHandle, existingNcmpServiceCmHandle, lcmEventType));
return lcmEvent;
}
- private Event lcmEventPayload(final String eventCorrelationId) {
+ private Event lcmEventPayload(final String eventCorrelationId, final NcmpServiceCmHandle targetNcmpServiceCmHandle,
+ final NcmpServiceCmHandle existingNcmpServiceCmHandle, final LcmEventType lcmEventType) {
final Event event = new Event();
event.setCmHandleId(eventCorrelationId);
+ final CmHandleValuesHolder cmHandleValuesHolder =
+ LcmEventsCreatorHelper.determineEventValues(targetNcmpServiceCmHandle, existingNcmpServiceCmHandle,
+ lcmEventType);
+ event.setOldValues(cmHandleValuesHolder.getOldValues());
+ event.setNewValues(cmHandleValuesHolder.getNewValues());
+
return event;
}
- private LcmEvent lcmEventHeader(final String eventCorrelationId) {
+ private LcmEvent lcmEventHeader(final String eventCorrelationId, final LcmEventType lcmEventType) {
final LcmEvent lcmEvent = new LcmEvent();
lcmEvent.setEventId(UUID.randomUUID().toString());
lcmEvent.setEventCorrelationId(eventCorrelationId);
lcmEvent.setEventTime(EventDateTimeFormatter.getCurrentDateTime());
lcmEvent.setEventSource("org.onap.ncmp");
- lcmEvent.setEventType("org.onap.ncmp.cmhandle-lcm-event");
+ lcmEvent.setEventType(lcmEventType.getEventType());
lcmEvent.setEventSchema("org.onap.ncmp:cmhandle-lcm-event");
- lcmEvent.setEventSchemaVersion("v1");
+ lcmEvent.setEventSchemaVersion("1.0");
return lcmEvent;
}
-}
+ @NoArgsConstructor
+ @Getter
+ @Setter
+ static class CmHandleValuesHolder {
+
+ private Values oldValues;
+ private Values newValues;
+ }
+
+}
\ No newline at end of file