content: 
  /*
   * Copyright Contributors to the OpenCue Project
   *
   * 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.
   */
  
  package com.imageworks.spcue.dao;
  
  import org.springframework.transaction.annotation.Propagation;
  import org.springframework.transaction.annotation.Transactional;
  
  import com.imageworks.spcue.Redirect;
  
  @Transactional(propagation = Propagation.MANDATORY)
  public interface RedirectDao {
      /**
       * Check for redirect existence.
       *
       * @param key Redirect key
       *
       * @return True if redirect exists
       */
      boolean containsKey(String key);
  
      /**
       * Count redirects in a group.
       *
       * @param groupId the group to query
       *
       * @return count of redirects in group
       */
      int countRedirectsWithGroup(String groupId);
  
      /**
       * Delete all expired redirects.
       *
       * @return number of redirects deleted
       */
      int deleteExpired();
  
      /**
       * Add redirect.
       *
       * @param key Redirect key
       *
       * @param r Redirect to add
       */
      void put(String key, Redirect r);
  
      /**
       * Delete and return specified redirect.
       *
       * @param key Redirect key
       *
       * @return the redirect that was deleted or null
       */
      Redirect remove(String key);
  }
  