View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.eclipse.aether.impl;
20  
21  import org.eclipse.aether.RepositorySystemSession;
22  import org.eclipse.aether.artifact.Artifact;
23  import org.eclipse.aether.metadata.Metadata;
24  import org.eclipse.aether.transfer.ArtifactTransferException;
25  import org.eclipse.aether.transfer.MetadataTransferException;
26  
27  /**
28   * Determines if updates of artifacts and metadata from remote repositories are needed.
29   *
30   * @noimplement This interface is not intended to be implemented by clients.
31   * @noextend This interface is not intended to be extended by clients.
32   * @provisional This type is provisional and can be changed, moved or removed without prior notice.
33   */
34  public interface UpdateCheckManager {
35  
36      /**
37       * Checks whether an artifact has to be updated from a remote repository.
38       *
39       * @param session The repository system session during which the request is made, must not be {@code null}.
40       * @param check The update check request, must not be {@code null}.
41       */
42      void checkArtifact(RepositorySystemSession session, UpdateCheck<Artifact, ArtifactTransferException> check);
43  
44      /**
45       * Updates the timestamp for the artifact contained in the update check.
46       *
47       * @param session The repository system session during which the request is made, must not be {@code null}.
48       * @param check The update check request, must not be {@code null}.
49       */
50      void touchArtifact(RepositorySystemSession session, UpdateCheck<Artifact, ArtifactTransferException> check);
51  
52      /**
53       * Checks whether metadata has to be updated from a remote repository.
54       *
55       * @param session The repository system session during which the request is made, must not be {@code null}.
56       * @param check The update check request, must not be {@code null}.
57       */
58      void checkMetadata(RepositorySystemSession session, UpdateCheck<Metadata, MetadataTransferException> check);
59  
60      /**
61       * Updates the timestamp for the metadata contained in the update check.
62       *
63       * @param session The repository system session during which the request is made, must not be {@code null}.
64       * @param check The update check request, must not be {@code null}.
65       */
66      void touchMetadata(RepositorySystemSession session, UpdateCheck<Metadata, MetadataTransferException> check);
67  }