diff options
Diffstat (limited to 'dcae-analytics/dcae-analytics-tca-web/src/main/java/org/onap/dcae/analytics/tca/web/service/TcaProcessingServiceImpl.java')
-rw-r--r-- | dcae-analytics/dcae-analytics-tca-web/src/main/java/org/onap/dcae/analytics/tca/web/service/TcaProcessingServiceImpl.java | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/dcae-analytics/dcae-analytics-tca-web/src/main/java/org/onap/dcae/analytics/tca/web/service/TcaProcessingServiceImpl.java b/dcae-analytics/dcae-analytics-tca-web/src/main/java/org/onap/dcae/analytics/tca/web/service/TcaProcessingServiceImpl.java new file mode 100644 index 0000000..3bb742a --- /dev/null +++ b/dcae-analytics/dcae-analytics-tca-web/src/main/java/org/onap/dcae/analytics/tca/web/service/TcaProcessingServiceImpl.java @@ -0,0 +1,87 @@ +/* + * ================================================================================ + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + */ + +package org.onap.dcae.analytics.tca.web.service; + +import static org.onap.dcae.analytics.web.util.AnalyticsWebUtils.RANDOM_ID_SUPPLIER; +import static org.onap.dcae.analytics.web.util.AnalyticsWebUtils.REQUEST_ID_SUPPLIER; +import static org.onap.dcae.analytics.web.util.ValidationUtils.isPresent; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +import org.onap.dcae.analytics.model.AnalyticsModelConstants; +import org.onap.dcae.analytics.tca.core.service.GenericTcaExecutionContext; +import org.onap.dcae.analytics.tca.core.service.GenericTcaProcessingContext; +import org.onap.dcae.analytics.tca.core.service.GenericTcaResultContext; +import org.onap.dcae.analytics.tca.core.service.TcaAaiEnrichmentContext; +import org.onap.dcae.analytics.tca.core.service.TcaAbatementContext; +import org.onap.dcae.analytics.tca.core.service.TcaExecutionContext; +import org.onap.dcae.analytics.tca.core.util.function.calculation.TcaCalculator; +import org.onap.dcae.analytics.tca.model.policy.TcaPolicy; +import org.onap.dcae.analytics.tca.web.util.TcaUtils; + +/** + * @author Rajiv Singla + */ +public class TcaProcessingServiceImpl implements TcaProcessingService { + + private final TcaAbatementContext tcaAbatementContext; + private final TcaAaiEnrichmentContext tcaAaiEnrichmentContext; + + public TcaProcessingServiceImpl(final TcaAbatementContext tcaAbatementContext, + final TcaAaiEnrichmentContext tcaAaiEnrichmentContext) { + this.tcaAbatementContext = tcaAbatementContext; + this.tcaAaiEnrichmentContext = tcaAaiEnrichmentContext; + } + + + @Override + public List<TcaExecutionContext> getTcaExecutionResults(final String requestId, + final String transactionId, + final TcaPolicy tcaPolicy, + final List<String> cefMessages) { + // create tca policy deep copy as it should be same for current execution + final TcaPolicy tcaPolicyDeepCopy = TcaUtils.getTcaPolicyDeepCopy(tcaPolicy); + // create new request id if not present + final String executionRequestId = isPresent(requestId) ? requestId : REQUEST_ID_SUPPLIER.get(); + // create transaction id if not present + final String executionTransactionId = isPresent(transactionId) ? transactionId : RANDOM_ID_SUPPLIER.get(); + + return IntStream.range(0, cefMessages.size()) + // generate initial Processing contexts + .mapToObj(cefMessageIndex -> GenericTcaExecutionContext.builder() + .requestId(executionRequestId + + AnalyticsModelConstants.ANALYTICS_REQUEST_ID_DELIMITER + cefMessageIndex) + .transactionId(executionTransactionId) + .messageIndex(cefMessageIndex) + .cefMessage(cefMessages.get(cefMessageIndex)) + .tcaPolicy(tcaPolicyDeepCopy) + .tcaProcessingContext(new GenericTcaProcessingContext()) + .tcaAbatementContext(tcaAbatementContext) + .tcaAaiEnrichmentContext(tcaAaiEnrichmentContext) + .tcaResultContext(new GenericTcaResultContext()) + .build()) + // apply tca calculator + .map(new TcaCalculator()) + // return result + .collect(Collectors.toList()); + } +} |