1 /******************************************************************************* 2 * Copyright (c) 2010, 2011 Sonatype, Inc. 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Eclipse Public License v1.0 5 * which accompanies this distribution, and is available at 6 * http://www.eclipse.org/legal/epl-v10.html 7 * 8 * Contributors: 9 * Sonatype, Inc. - initial API and implementation 10 *******************************************************************************/ 11 package org.eclipse.aether.repository; 12 13 import java.io.File; 14 15 import org.eclipse.aether.RepositorySystemSession; 16 17 /** 18 * A result from the local repository about the existence of metadata. 19 * 20 * @see LocalRepositoryManager#find(RepositorySystemSession, LocalMetadataRequest) 21 */ 22 public final class LocalMetadataResult 23 { 24 25 private final LocalMetadataRequest request; 26 27 private File file; 28 29 private boolean stale; 30 31 /** 32 * Creates a new result for the specified request. 33 * 34 * @param request The local metadata request, must not be {@code null}. 35 */ 36 public LocalMetadataResult( LocalMetadataRequest request ) 37 { 38 if ( request == null ) 39 { 40 throw new IllegalArgumentException( "local metadata request has not been specified" ); 41 } 42 this.request = request; 43 } 44 45 /** 46 * Gets the request corresponding to this result. 47 * 48 * @return The corresponding request, never {@code null}. 49 */ 50 public LocalMetadataRequest getRequest() 51 { 52 return request; 53 } 54 55 /** 56 * Gets the file to the requested metadata if the metadata is available in the local repository. 57 * 58 * @return The file to the requested metadata or {@code null}. 59 */ 60 public File getFile() 61 { 62 return file; 63 } 64 65 /** 66 * Sets the file to requested metadata. 67 * 68 * @param file The metadata file, may be {@code null}. 69 * @return This result for chaining, never {@code null}. 70 */ 71 public LocalMetadataResult setFile( File file ) 72 { 73 this.file = file; 74 return this; 75 } 76 77 /** 78 * This value indicates whether the metadata is stale and should be updated. 79 * 80 * @return {@code true} if the metadata is stale and should be updated, {@code false} otherwise. 81 */ 82 public boolean isStale() 83 { 84 return stale; 85 } 86 87 /** 88 * Sets whether the metadata is stale. 89 * 90 * @param stale {@code true} if the metadata is stale and should be updated, {@code false} otherwise. 91 * @return This result for chaining, never {@code null}. 92 */ 93 public LocalMetadataResult setStale( boolean stale ) 94 { 95 this.stale = stale; 96 return this; 97 } 98 99 @Override 100 public String toString() 101 { 102 return request.toString() + "(" + getFile() + ")"; 103 } 104 105 }