/* ********************************************************************
Licensed to Jasig under one or more contributor license
agreements. See the NOTICE file distributed with this work
for additional information regarding copyright ownership.
Jasig 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.bedework.calsvci;
import org.bedework.calfacade.base.UpdateFromTimeZonesInfo;
import org.bedework.calfacade.exc.CalFacadeException;
import java.io.Serializable;
/** Actions to maintain a store of timezone definitions.
*
* @author Mike Douglass
*
*/
public interface TimeZonesStoreI extends Serializable {
/** Update the system after changes to timezones. This may be a lengthy process
* so the method allows the caller to specify how many updates are to take place
* before returning.
*
* <p>To restart the update, call the method again, giving it the result from
* the last call as a parameter.
*
* <p>If called again after all events have been checked the process will be
* redone using timestamps to limit the check to events added or updated since
* the first check. Keep calling until the number of updated events is zero.
*
* @param colHref collection to fix
* @param limit -1 for no limit
* @param checkOnly don't update if true.
* @param info null on first call, returned object from previous calls.
* @return UpdateFromTimeZonesInfo staus of the update
* @throws CalFacadeException on error
*/
public UpdateFromTimeZonesInfo updateFromTimeZones(String colHref,
int limit,
boolean checkOnly,
UpdateFromTimeZonesInfo info
) throws CalFacadeException;
}