Removing deprecated DMAAP library
[policy/drools-pdp.git] / policy-core / src / main / java / org / onap / policy / drools / core / lock / AlwaysSuccessLock.java
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP
4  * ================================================================================
5  * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
6  * Modifications Copyright (C) 2024 Nordix Foundation.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.policy.drools.core.lock;
23
24 import java.io.Serial;
25 import lombok.NonNull;
26
27 /**
28  * Lock implementation whose operations always succeed.
29  */
30 public class AlwaysSuccessLock extends LockImpl {
31     @Serial
32     private static final long serialVersionUID = 1L;
33
34     /**
35      * Overrides parent constructor.
36      */
37     public AlwaysSuccessLock() {
38         setState(LockState.ACTIVE);
39     }
40
41     /**
42      * Overrides parent constructor.
43      */
44     public AlwaysSuccessLock(@NonNull LockState state, @NonNull String resourceId,
45             @NonNull String ownerKey, int holdSec, @NonNull LockCallback callback) {
46         super(state, resourceId, ownerKey, holdSec, callback);
47         if (!isActive()) {
48             throw new IllegalArgumentException("AlwaysSuccessLock can only be created in the active state");
49         }
50     }
51
52     /**
53      * Constructs the object.
54      */
55     public AlwaysSuccessLock(@NonNull String resourceId, @NonNull String ownerKey,
56             int holdSec, @NonNull LockCallback callback) {
57         super(LockState.ACTIVE, resourceId, ownerKey, holdSec, callback);
58     }
59
60     /**
61      * Always returns true.
62      */
63     @Override
64     public synchronized boolean free() {
65         return true;
66     }
67 }