blob: 85807a99f003fb01e2bd24f30f703e5fcf007c6b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 2008 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
* Danail Nachev - ProSyst - bug 218625
* Rob Harrop - SpringSource Inc. (bug 247522)
*******************************************************************************/
package org.eclipse.osgi.internal.resolver;
import org.eclipse.osgi.framework.internal.core.Constants;
import org.eclipse.osgi.service.resolver.*;
abstract class VersionConstraintImpl implements VersionConstraint {
protected final Object monitor = new Object();
private String name;
private VersionRange versionRange;
private BundleDescription bundle;
private BaseDescription supplier;
public String getName() {
synchronized (this.monitor) {
if (Constants.SYSTEM_BUNDLE_SYMBOLICNAME.equals(name)) {
StateImpl state = (StateImpl) getBundle().getContainingState();
return state == null ? Constants.getInternalSymbolicName() : state.getSystemBundle();
}
return name;
}
}
public VersionRange getVersionRange() {
synchronized (this.monitor) {
if (versionRange == null)
return VersionRange.emptyRange;
return versionRange;
}
}
public BundleDescription getBundle() {
synchronized (this.monitor) {
return bundle;
}
}
public boolean isResolved() {
synchronized (this.monitor) {
return supplier != null;
}
}
public BaseDescription getSupplier() {
synchronized (this.monitor) {
return supplier;
}
}
public boolean isSatisfiedBy(BaseDescription supplier) {
synchronized (this.monitor) {
return false;
}
}
protected void setName(String name) {
synchronized (this.monitor) {
this.name = name;
}
}
protected void setVersionRange(VersionRange versionRange) {
synchronized (this.monitor) {
this.versionRange = versionRange;
}
}
protected void setBundle(BundleDescription bundle) {
synchronized (this.monitor) {
this.bundle = bundle;
}
}
protected void setSupplier(BaseDescription supplier) {
synchronized (this.monitor) {
this.supplier = supplier;
}
}
}