| /******************************************************************************* |
| * Copyright (c) 2008, 2010 Code 9 and others. |
| * |
| * This |
| * program and the accompanying materials are made available under the terms of |
| * the Eclipse Public License 2.0 which accompanies this distribution, and is |
| * available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Code 9 - initial API and implementation |
| * IBM - ongoing development |
| ******************************************************************************/ |
| package org.eclipse.equinox.p2.publisher; |
| |
| import java.util.Collection; |
| import org.eclipse.equinox.p2.metadata.Version; |
| import org.eclipse.equinox.p2.repository.artifact.IArtifactRepository; |
| import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; |
| |
| public interface IPublisherInfo { |
| |
| /** |
| * A bitwise flag to say whether or not the index for the artifact repository should |
| * be updated. |
| */ |
| public static final int A_INDEX = 1; |
| |
| /** |
| * A bitwise flag to say whether or the artifacts themselves should be published. |
| */ |
| public static final int A_PUBLISH = 2; |
| |
| /** |
| * A bitwise flag to say whether or not to overwrite disk content discovered |
| * in the repository when publishing an artifact |
| */ |
| public static final int A_OVERWRITE = 4; |
| |
| /** |
| * A bitwise flag indicating that MD5 hash should not be generated when |
| * publishing an artifact. When this flag is not specified the MD5 hash will |
| * be generated by default. |
| */ |
| public static final int A_NO_MD5 = 8; |
| |
| /** |
| * Returns the artifact repository into which any publishable artifacts are published |
| * or <code>null</code> if none. |
| * @return a destination artifact repository or <code>null</code> |
| */ |
| public IArtifactRepository getArtifactRepository(); |
| |
| /** |
| * Returns the metadata repository into which any publishable metadata is published |
| * or <code>null</code> if none. |
| * @return a destination metadata repository or <code>null</code> |
| */ |
| public IMetadataRepository getMetadataRepository(); |
| |
| /** |
| * Returns a bitflag that controls the publish operation, what is a bitwhise OR |
| * of {@link #A_INDEX},{@value #A_PUBLISH}, {@link #A_NO_MD5}, |
| * {@link #A_OVERWRITE} or <code>0</code> if no flags are set. |
| */ |
| public int getArtifactOptions(); |
| |
| /** |
| * Returns the registered advice for the given configuration of WS, OS and ARCH where the |
| * advice is of the given type. If mergeDefault is <code>true</code> then the advice for |
| * the default configuration is merged into the result. |
| * @param configSpec the configuration to query. Note that the given configuration |
| * must specify values for WS, OS and ARCH. |
| * @param type the type of advice to look for |
| * @param includeDefault whether or not to merge in the advice common to all configurations |
| * @return the set of advice of the given type for the given configuration |
| */ |
| public <T extends IPublisherAdvice> Collection<T> getAdvice(String configSpec, boolean includeDefault, String id, Version version, Class<T> type); |
| |
| /** |
| * Add the given advice to the set of publishing advices. |
| * @param advice the advice to retain |
| */ |
| public void addAdvice(IPublisherAdvice advice); |
| |
| /** |
| * Returns the configurations being published. Each configuration is a string of the form |
| * ws.os.arch describing the window system, operating system, and architecture of each |
| * configuration. |
| * @return The configurations being published |
| * @see AbstractPublisherAction#createConfigSpec(String, String, String) |
| */ |
| public String[] getConfigurations(); |
| |
| /** |
| * Returns the artifact repository given to the publisher as context for |
| * the publisher actions. May be <code>null</code>. Note that multiple |
| * repositories may be represented as one composite repository. |
| * |
| * @return the context artifact repository or <code>null</code> if none. |
| */ |
| public IArtifactRepository getContextArtifactRepository(); |
| |
| /** |
| * Returns the metadata repository given to the publisher as context for |
| * the publisher actions. May be <code>null</code>. Note that multiple |
| * repositories may be represented as one composite repository. |
| * |
| * @return the context metadata repository or <code>null</code> if none. |
| */ |
| public IMetadataRepository getContextMetadataRepository(); |
| } |