All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.osgi.service.resolver.DisabledInfo Maven / Gradle / Ivy

There is a newer version: 1.9.22.1
Show newest version
/*******************************************************************************
 * Copyright (c) 2007, 2012 IBM Corporation 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:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.osgi.service.resolver;

/**
 * A disabled info represents a policy decision to disable a bundle which exists in a {@link State}.
 * Bundles may be disabled by adding disabled info with the {@link State#addDisabledInfo(DisabledInfo)}
 * method and enabled by removing disabled info with the {@link State#removeDisabledInfo(DisabledInfo)} method.
 * A bundle is not considered to be enabled unless there are no disabled info objects for the bundle.
 * 

* While resolving the bundle if the {@link Resolver} encounters a {@link BundleDescription} which * has disabled info returned by {@link State#getDisabledInfos(BundleDescription)} then the bundle * must not be allowed to resolve and a ResolverError of type {@link ResolverError#DISABLED_BUNDLE} * must be added to the state. *

* @see State * @since 3.4 */ public final class DisabledInfo { private final String policyName; private final String message; private final BundleDescription bundle; /** * DisabledInfo constructor. * @param policyName the name of the policy * @param message the message, may be null * @param bundle the bundle */ public DisabledInfo(String policyName, String message, BundleDescription bundle) { if (policyName == null || bundle == null) throw new IllegalArgumentException(); this.policyName = policyName; this.message = message; this.bundle = bundle; } /** * Returns the name of the policy which disabled the bundle. * @return the name of the policy */ public String getPolicyName() { return policyName; } /** * Returns the message describing the reason the bundle is disabled. * @return the message */ public String getMessage() { return message; } /** * Returns the bundle which is disabled * @return the bundle which is disabled */ public BundleDescription getBundle() { return bundle; } @Override public boolean equals(Object obj) { if (obj == this) return true; if (!(obj instanceof DisabledInfo)) return false; DisabledInfo other = (DisabledInfo) obj; if (getBundle() == other.getBundle() && getPolicyName().equals(other.getPolicyName())) { if (getMessage() == null ? other.getMessage() == null : getMessage().equals(other.getMessage())) return true; } return false; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (bundle == null ? 0 : bundle.hashCode()); result = prime * result + (policyName == null ? 0 : policyName.hashCode()); result = prime * result + (message == null ? 0 : message.hashCode()); return result; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy