/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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. */ package org.apache.sling.distribution.queue.impl; import org.apache.sling.distribution.queue.DistributionQueueItem; import org.apache.sling.distribution.queue.DistributionQueueItemStatus; import org.apache.sling.distribution.queue.DistributionQueueState; /** * Utility methods for queues. */ public class DistributionQueueUtils { /** * Calculate the {@link DistributionQueueState} of an item given its status. * @param item a queue item * @param status an item status * @return a queue item state */ public static DistributionQueueState calculateState(DistributionQueueItem item, DistributionQueueItemStatus status) { if (item != null && status != null) { int attempts = status.getAttempts(); if (attempts > 0) { return DistributionQueueState.BLOCKED; } else { return DistributionQueueState.RUNNING; } } else { return DistributionQueueState.IDLE; } } }