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.util.Collection; 14 import java.util.Collections; 15 16 import org.eclipse.aether.RepositorySystemSession; 17 import org.eclipse.aether.metadata.Metadata; 18 19 /** 20 * A request to register metadata within the local repository. 21 * 22 * @see LocalRepositoryManager#add(RepositorySystemSession, LocalMetadataRegistration) 23 */ 24 public final class LocalMetadataRegistration 25 { 26 27 private Metadata metadata; 28 29 private RemoteRepository repository; 30 31 private Collection<String> contexts = Collections.emptyList(); 32 33 /** 34 * Creates an uninitialized registration. 35 */ 36 public LocalMetadataRegistration() 37 { 38 // enables default constructor 39 } 40 41 /** 42 * Creates a registration request for the specified metadata accompanying a locally installed artifact. 43 * 44 * @param metadata The metadata to register, may be {@code null}. 45 */ 46 public LocalMetadataRegistration( Metadata metadata ) 47 { 48 setMetadata( metadata ); 49 } 50 51 /** 52 * Creates a registration request for the specified metadata. 53 * 54 * @param metadata The metadata to register, may be {@code null}. 55 * @param repository The remote repository from which the metadata was resolved or {@code null} if the metadata 56 * accompanies a locally installed artifact. 57 * @param contexts The resolution contexts, may be {@code null}. 58 */ 59 public LocalMetadataRegistration( Metadata metadata, RemoteRepository repository, Collection<String> contexts ) 60 { 61 setMetadata( metadata ); 62 setRepository( repository ); 63 setContexts( contexts ); 64 } 65 66 /** 67 * Gets the metadata to register. 68 * 69 * @return The metadata or {@code null} if not set. 70 */ 71 public Metadata getMetadata() 72 { 73 return metadata; 74 } 75 76 /** 77 * Sets the metadata to register. 78 * 79 * @param metadata The metadata, may be {@code null}. 80 * @return This request for chaining, never {@code null}. 81 */ 82 public LocalMetadataRegistration setMetadata( Metadata metadata ) 83 { 84 this.metadata = metadata; 85 return this; 86 } 87 88 /** 89 * Gets the remote repository from which the metadata was resolved. 90 * 91 * @return The remote repository or {@code null} if the metadata was locally installed. 92 */ 93 public RemoteRepository getRepository() 94 { 95 return repository; 96 } 97 98 /** 99 * Sets the remote repository from which the metadata was resolved. 100 * 101 * @param repository The remote repository or {@code null} if the metadata accompanies a locally installed artifact. 102 * @return This request for chaining, never {@code null}. 103 */ 104 public LocalMetadataRegistration setRepository( RemoteRepository repository ) 105 { 106 this.repository = repository; 107 return this; 108 } 109 110 /** 111 * Gets the resolution contexts in which the metadata is available. 112 * 113 * @return The resolution contexts in which the metadata is available, never {@code null}. 114 */ 115 public Collection<String> getContexts() 116 { 117 return contexts; 118 } 119 120 /** 121 * Sets the resolution contexts in which the metadata is available. 122 * 123 * @param contexts The resolution contexts, may be {@code null}. 124 * @return This request for chaining, never {@code null}. 125 */ 126 public LocalMetadataRegistration setContexts( Collection<String> contexts ) 127 { 128 if ( contexts != null ) 129 { 130 this.contexts = contexts; 131 } 132 else 133 { 134 this.contexts = Collections.emptyList(); 135 } 136 return this; 137 } 138 139 }