2 * ============LICENSE_START=======================================================
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
22 package org.onap.policy.drools.core.lock;
24 import java.io.Serial;
25 import lombok.NonNull;
28 * Lock implementation whose operations always succeed.
30 public class AlwaysSuccessLock extends LockImpl {
32 private static final long serialVersionUID = 1L;
35 * Overrides parent constructor.
37 public AlwaysSuccessLock() {
38 setState(LockState.ACTIVE);
42 * Overrides parent constructor.
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);
48 throw new IllegalArgumentException("AlwaysSuccessLock can only be created in the active state");
53 * Constructs the object.
55 public AlwaysSuccessLock(@NonNull String resourceId, @NonNull String ownerKey,
56 int holdSec, @NonNull LockCallback callback) {
57 super(LockState.ACTIVE, resourceId, ownerKey, holdSec, callback);
61 * Always returns true.
64 public synchronized boolean free() {