/*- * ============LICENSE_START======================================================= * Copyright (C) 2019 Nordix Foundation. * Modifications Copyright (C) 2021 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. * * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ package org.onap.policy.models.base; import jakarta.ws.rs.core.Response; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import lombok.AccessLevel; import lombok.NoArgsConstructor; import lombok.NonNull; /** * The model service makes Policy Framework models available to all classes in a JVM. * *
The reason for having a model service is to avoid having to pass concept and model definitions down long call * chains in modules such as the Policy Framework engine and editor. The model service makes the model and concept * definitions available statically. * *
Note that the use of the model service means that only a single Policy Framework model of a particular type may
* exist in Policy Framework (particularly the engine) at any time. Of course the model in a JVM can be changed at any
* time provided all users of the model are stopped and restarted in an orderly manner.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class PfModelService {
// The map holding the models
private static final Map