package org.eclipse.aether.impl;

/*
 * 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.
 */

import java.io.File;

import org.eclipse.aether.RepositoryException;
import org.eclipse.aether.repository.RemoteRepository;

A request to check if an update of an artifact/metadata from a remote repository is needed.
Type parameters:
  • <T> –
  • <E> –
See Also:
@provisionalThis type is provisional and can be changed, moved or removed without prior notice.
/** * A request to check if an update of an artifact/metadata from a remote repository is needed. * * @param <T> * @param <E> * @see UpdateCheckManager * @provisional This type is provisional and can be changed, moved or removed without prior notice. */
public final class UpdateCheck<T, E extends RepositoryException> { private long localLastUpdated; private T item; private File file; private boolean fileValid = true; private String policy; private RemoteRepository repository; private RemoteRepository authoritativeRepository; private boolean required; private E exception;
Creates an uninitialized update check request.
/** * Creates an uninitialized update check request. */
public UpdateCheck() { }
Gets the last-modified timestamp of the corresponding item produced by a local installation. If non-zero, a remote update will be surpressed if the local item is up-to-date, even if the remote item has not been cached locally.
Returns:The last-modified timestamp of the corresponding item produced by a local installation or 0 to ignore any local item.
/** * Gets the last-modified timestamp of the corresponding item produced by a local installation. If non-zero, a * remote update will be surpressed if the local item is up-to-date, even if the remote item has not been cached * locally. * * @return The last-modified timestamp of the corresponding item produced by a local installation or {@code 0} to * ignore any local item. */
public long getLocalLastUpdated() { return localLastUpdated; }
Sets the last-modified timestamp of the corresponding item produced by a local installation. If non-zero, a remote update will be surpressed if the local item is up-to-date, even if the remote item has not been cached locally.
Params:
  • localLastUpdated – The last-modified timestamp of the corresponding item produced by a local installation or 0 to ignore any local item.
Returns:This object for chaining.
/** * Sets the last-modified timestamp of the corresponding item produced by a local installation. If non-zero, a * remote update will be surpressed if the local item is up-to-date, even if the remote item has not been cached * locally. * * @param localLastUpdated The last-modified timestamp of the corresponding item produced by a local installation or * {@code 0} to ignore any local item. * @return This object for chaining. */
public UpdateCheck<T, E> setLocalLastUpdated( long localLastUpdated ) { this.localLastUpdated = localLastUpdated; return this; }
Gets the item of the check.
Returns:The item of the check, never null.
/** * Gets the item of the check. * * @return The item of the check, never {@code null}. */
public T getItem() { return item; }
Sets the item of the check.
Params:
  • item – The item of the check, must not be null.
Returns:This object for chaining.
/** * Sets the item of the check. * * @param item The item of the check, must not be {@code null}. * @return This object for chaining. */
public UpdateCheck<T, E> setItem( T item ) { this.item = item; return this; }
Returns the local file of the item.
Returns:The local file of the item.
/** * Returns the local file of the item. * * @return The local file of the item. */
public File getFile() { return file; }
Sets the local file of the item.
Params:
  • file – The file of the item, never null .
Returns:This object for chaining.
/** * Sets the local file of the item. * * @param file The file of the item, never {@code null} . * @return This object for chaining. */
public UpdateCheck<T, E> setFile( File file ) { this.file = file; return this; }
Indicates whether the local file given by getFile(), if existent, should be considered valid or not. An invalid file is equivalent to a physically missing file.
Returns:true if the file should be considered valid if existent, false if the file should be treated as if it was missing.
/** * Indicates whether the local file given by {@link #getFile()}, if existent, should be considered valid or not. An * invalid file is equivalent to a physically missing file. * * @return {@code true} if the file should be considered valid if existent, {@code false} if the file should be * treated as if it was missing. */
public boolean isFileValid() { return fileValid; }
Controls whether the local file given by getFile(), if existent, should be considered valid or not. An invalid file is equivalent to a physically missing file.
Params:
  • fileValid – true if the file should be considered valid if existent, false if the file should be treated as if it was missing.
Returns:This object for chaining.
/** * Controls whether the local file given by {@link #getFile()}, if existent, should be considered valid or not. An * invalid file is equivalent to a physically missing file. * * @param fileValid {@code true} if the file should be considered valid if existent, {@code false} if the file * should be treated as if it was missing. * @return This object for chaining. */
public UpdateCheck<T, E> setFileValid( boolean fileValid ) { this.fileValid = fileValid; return this; }
Gets the policy to use for the check.
See Also:
Returns:The policy to use for the check.
/** * Gets the policy to use for the check. * * @return The policy to use for the check. * @see org.eclipse.aether.repository.RepositoryPolicy */
public String getPolicy() { return policy; }
Sets the policy to use for the check.
Params:
  • policy – The policy to use for the check, may be null.
See Also:
Returns:This object for chaining.
/** * Sets the policy to use for the check. * * @param policy The policy to use for the check, may be {@code null}. * @return This object for chaining. * @see org.eclipse.aether.repository.RepositoryPolicy */
public UpdateCheck<T, E> setPolicy( String policy ) { this.policy = policy; return this; }
Gets the repository from which a potential update/download will performed.
Returns:The repository to use for the check.
/** * Gets the repository from which a potential update/download will performed. * * @return The repository to use for the check. */
public RemoteRepository getRepository() { return repository; }
Sets the repository from which a potential update/download will performed.
Params:
  • repository – The repository to use for the check, must not be null.
Returns:This object for chaining.
/** * Sets the repository from which a potential update/download will performed. * * @param repository The repository to use for the check, must not be {@code null}. * @return This object for chaining. */
public UpdateCheck<T, E> setRepository( RemoteRepository repository ) { this.repository = repository; return this; }
Gets the repository which ultimately hosts the metadata to update. This will be different from the repository given by getRepository() in case the latter denotes a repository manager.
Returns:The actual repository hosting the authoritative copy of the metadata to update, never null for a metadata update check.
/** * Gets the repository which ultimately hosts the metadata to update. This will be different from the repository * given by {@link #getRepository()} in case the latter denotes a repository manager. * * @return The actual repository hosting the authoritative copy of the metadata to update, never {@code null} for a * metadata update check. */
public RemoteRepository getAuthoritativeRepository() { return authoritativeRepository != null ? authoritativeRepository : repository; }
Sets the repository which ultimately hosts the metadata to update. This will be different from the repository given by getRepository() in case the latter denotes a repository manager.
Params:
  • authoritativeRepository – The actual repository hosting the authoritative copy of the metadata to update, must not be null for a metadata update check.
Returns:This object for chaining.
/** * Sets the repository which ultimately hosts the metadata to update. This will be different from the repository * given by {@link #getRepository()} in case the latter denotes a repository manager. * * @param authoritativeRepository The actual repository hosting the authoritative copy of the metadata to update, * must not be {@code null} for a metadata update check. * @return This object for chaining. */
public UpdateCheck<T, E> setAuthoritativeRepository( RemoteRepository authoritativeRepository ) { this.authoritativeRepository = authoritativeRepository; return this; }
Gets the result of a check, denoting whether the remote repository should be checked for updates.
Returns:The result of a check.
/** * Gets the result of a check, denoting whether the remote repository should be checked for updates. * * @return The result of a check. */
public boolean isRequired() { return required; }
Sets the result of an update check.
Params:
  • required – The result of an update check. In case of false and the local file given by getFile() does actually not exist, setException(RepositoryException) should be used to provide the previous/cached failure that explains the absence of the file.
Returns:This object for chaining.
/** * Sets the result of an update check. * * @param required The result of an update check. In case of {@code false} and the local file given by * {@link #getFile()} does actually not exist, {@link #setException(RepositoryException)} should be used * to provide the previous/cached failure that explains the absence of the file. * @return This object for chaining. */
public UpdateCheck<T, E> setRequired( boolean required ) { this.required = required; return this; }
Gets the exception that occurred during the update check.
Returns:The occurred exception or null if the update check was successful.
/** * Gets the exception that occurred during the update check. * * @return The occurred exception or {@code null} if the update check was successful. */
public E getException() { return exception; }
Sets the exception for this update check.
Params:
  • exception – The exception for this update check, may be null if the check was successful.
Returns:This object for chaining.
/** * Sets the exception for this update check. * * @param exception The exception for this update check, may be {@code null} if the check was successful. * @return This object for chaining. */
public UpdateCheck<T, E> setException( E exception ) { this.exception = exception; return this; } @Override public String toString() { return getPolicy() + ": " + getFile() + " < " + getRepository(); } }