// Copyright 2014 Google Inc. All Rights Reserved.
//
// 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.
/**
* The {@code diffing} package provides a framework for writing
* connectors to repositories that do not provide information about
* added, deleted, or updated documents.
* For repositories that support detecting updated documents, but not
* added or deleted documents, implementing the
* {@link com.google.enterprise.connector.spi.Lister Lister} and
* {@link com.google.enterprise.connector.spi.Retriever Retriever}
* interfaces is a better alternative.
* <p>
* A diffing connector, written
* using this package, provides an iterable, fully-ordered {@link
* com.google.enterprise.connector.util.diffing.SnapshotRepository
* SnapshotRepository} of lightweight snapshots. A {@link
* com.google.enterprise.connector.util.diffing.DocumentSnapshot
* DocumentSnapshot} can be compared to another snapshot, stringified,
* or used to obtain a {@link
* com.google.enterprise.connector.spi.Document Document} via a {@link
* com.google.enterprise.connector.util.diffing.DocumentHandle
* DocumentHandle} class.
* </p>
* <img src="doc-files/lifecycle.png" alt="Lifecycle diagram">
*
* @since 2.8
*/
package com.google.enterprise.connector.util.diffing;