X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.repo%2Fsrc%2Forg%2Feclipse%2Faether%2Frepository%2FLocalArtifactRegistration.java;fp=org.argeo.slc.repo%2Fsrc%2Forg%2Feclipse%2Faether%2Frepository%2FLocalArtifactRegistration.java;h=af6ea4e0fd0511ea33d2c6943412441ccc8a5fe7;hb=825d60c5348dbe3f5be25b0bccf7bdebfe694219;hp=0000000000000000000000000000000000000000;hpb=5e991fff5cba01858dcc5747a27e637325bc5c8e;p=gpl%2Fargeo-jcr.git diff --git a/org.argeo.slc.repo/src/org/eclipse/aether/repository/LocalArtifactRegistration.java b/org.argeo.slc.repo/src/org/eclipse/aether/repository/LocalArtifactRegistration.java new file mode 100644 index 0000000..af6ea4e --- /dev/null +++ b/org.argeo.slc.repo/src/org/eclipse/aether/repository/LocalArtifactRegistration.java @@ -0,0 +1,140 @@ +/******************************************************************************* + * Copyright (c) 2010, 2011 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Sonatype, Inc. - initial API and implementation + *******************************************************************************/ +package org.eclipse.aether.repository; + +import java.util.Collection; +import java.util.Collections; + +import org.eclipse.aether.RepositorySystemSession; +import org.eclipse.aether.artifact.Artifact; + +/** + * A request to register an artifact within the local repository. Certain local repository implementations can refuse to + * serve physically present artifacts if those haven't been previously registered to them. + * + * @see LocalRepositoryManager#add(RepositorySystemSession, LocalArtifactRegistration) + */ +public final class LocalArtifactRegistration +{ + + private Artifact artifact; + + private RemoteRepository repository; + + private Collection contexts = Collections.emptyList(); + + /** + * Creates an uninitialized registration. + */ + public LocalArtifactRegistration() + { + // enables default constructor + } + + /** + * Creates a registration request for the specified (locally installed) artifact. + * + * @param artifact The artifact to register, may be {@code null}. + */ + public LocalArtifactRegistration( Artifact artifact ) + { + setArtifact( artifact ); + } + + /** + * Creates a registration request for the specified artifact. + * + * @param artifact The artifact to register, may be {@code null}. + * @param repository The remote repository from which the artifact was resolved or {@code null} if the artifact was + * locally installed. + * @param contexts The resolution contexts, may be {@code null}. + */ + public LocalArtifactRegistration( Artifact artifact, RemoteRepository repository, Collection contexts ) + { + setArtifact( artifact ); + setRepository( repository ); + setContexts( contexts ); + } + + /** + * Gets the artifact to register. + * + * @return The artifact or {@code null} if not set. + */ + public Artifact getArtifact() + { + return artifact; + } + + /** + * Sets the artifact to register. + * + * @param artifact The artifact, may be {@code null}. + * @return This request for chaining, never {@code null}. + */ + public LocalArtifactRegistration setArtifact( Artifact artifact ) + { + this.artifact = artifact; + return this; + } + + /** + * Gets the remote repository from which the artifact was resolved. + * + * @return The remote repository or {@code null} if the artifact was locally installed. + */ + public RemoteRepository getRepository() + { + return repository; + } + + /** + * Sets the remote repository from which the artifact was resolved. + * + * @param repository The remote repository or {@code null} if the artifact was locally installed. + * @return This request for chaining, never {@code null}. + */ + public LocalArtifactRegistration setRepository( RemoteRepository repository ) + { + this.repository = repository; + return this; + } + + /** + * Gets the resolution contexts in which the artifact is available. + * + * @return The resolution contexts in which the artifact is available, never {@code null}. + */ + public Collection getContexts() + { + return contexts; + } + + /** + * Sets the resolution contexts in which the artifact is available. + * + * @param contexts The resolution contexts, may be {@code null}. + * @return This request for chaining, never {@code null}. + */ + public LocalArtifactRegistration setContexts( Collection contexts ) + { + if ( contexts != null ) + { + this.contexts = contexts; + } + else + { + this.contexts = Collections.emptyList(); + } + return this; + } + +}