/*******************************************************************************
* Copyright (c) 2008, 2010 VMware 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:
* VMware Inc. - initial contribution
*******************************************************************************/
package org.eclipse.virgo.kernel.userregion.internal.quasi;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.eclipse.osgi.service.resolver.BaseDescription;
import org.eclipse.osgi.service.resolver.BundleDescription;
import org.eclipse.osgi.service.resolver.BundleSpecification;
import org.eclipse.osgi.service.resolver.ExportPackageDescription;
import org.eclipse.osgi.service.resolver.GenericDescription;
import org.eclipse.osgi.service.resolver.GenericSpecification;
import org.eclipse.osgi.service.resolver.HostSpecification;
import org.eclipse.osgi.service.resolver.ImportPackageSpecification;
import org.eclipse.osgi.service.resolver.NativeCodeSpecification;
import org.eclipse.osgi.service.resolver.State;
import org.eclipse.osgi.service.resolver.VersionRange;
import org.osgi.framework.Bundle;
import org.osgi.framework.Version;
import org.osgi.framework.wiring.BundleRequirement;
import org.osgi.framework.wiring.BundleWiring;
import org.osgi.framework.wiring.BundleCapability;
import org.osgi.resource.Capability;
import org.osgi.resource.Requirement;
public class StubBundleDescription implements BundleDescription {
private String bsn;
private Version bv;
private boolean resolved;
private long bid;
private List<BundleDescription> fragments = new ArrayList<BundleDescription>();
private List<BundleDescription> hosts = null;
private List<ExportPackageDescription> epds = new ArrayList<ExportPackageDescription>();
private List<ImportPackageSpecification> ipss = new ArrayList<ImportPackageSpecification>();
private List<BundleSpecification> rbs = new ArrayList<BundleSpecification>();
private List<BundleDescription> dependents = new ArrayList<BundleDescription>();
public StubBundleDescription() {
}
public StubBundleDescription(String bsn) {
this.bsn = bsn;
}
/**
* {@inheritDoc}
*/
@Override
public boolean attachFragments() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public boolean dynamicFragments() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public long getBundleId() {
return this.bid;
}
/**
* {@inheritDoc}
*/
@Override
public State getContainingState() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public BundleDescription[] getDependents() {
return this.dependents.toArray(new BundleDescription[this.dependents.size()]);
}
/**
* {@inheritDoc}
*/
@Override
public String[] getExecutionEnvironments() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public ExportPackageDescription[] getExportPackages() {
return this.epds.toArray(new ExportPackageDescription[this.epds.size()]);
}
/**
* {@inheritDoc}
*/
@Override
public BundleDescription[] getFragments() {
return this.fragments.toArray(new BundleDescription[this.fragments.size()]);
}
/**
* {@inheritDoc}
*/
@Override
public GenericDescription[] getGenericCapabilities() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public GenericSpecification[] getGenericRequires() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public HostSpecification getHost() {
return StubBundleDescription.this.hosts == null ? null : new HostSpecification() {
public BundleDescription[] getHosts() {
return StubBundleDescription.this.hosts.toArray(new BundleDescription[StubBundleDescription.this.hosts.size()]);
}
public boolean isMultiHost() {
throw new UnsupportedOperationException();
}
public BundleDescription getBundle() {
throw new UnsupportedOperationException();
}
public String getName() {
throw new UnsupportedOperationException();
}
public BaseDescription getSupplier() {
throw new UnsupportedOperationException();
}
public VersionRange getVersionRange() {
throw new UnsupportedOperationException();
}
public boolean isResolved() {
throw new UnsupportedOperationException();
}
public boolean isSatisfiedBy(BaseDescription supplier) {
throw new UnsupportedOperationException();
}
@Override
public BundleRequirement getRequirement() {
throw new UnsupportedOperationException();
}
@Override
public Object getUserObject() {
throw new UnsupportedOperationException();
}
@Override
public void setUserObject(Object arg0) {
throw new UnsupportedOperationException();
}
};
}
/**
* {@inheritDoc}
*/
@Override
public ImportPackageSpecification[] getImportPackages() {
return this.ipss.toArray(new ImportPackageSpecification[this.ipss.size()]);
}
/**
* {@inheritDoc}
*/
@Override
public String getLocation() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public NativeCodeSpecification getNativeCodeSpecification() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public String getPlatformFilter() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public BundleSpecification[] getRequiredBundles() {
return this.rbs.toArray(new BundleSpecification[this.rbs.size()]);
}
/**
* {@inheritDoc}
*/
@Override
public ExportPackageDescription[] getResolvedImports() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public BundleDescription[] getResolvedRequires() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public ExportPackageDescription[] getSelectedExports() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public ExportPackageDescription[] getSubstitutedExports() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public String getSymbolicName() {
return this.bsn;
}
/**
* {@inheritDoc}
*/
@Override
public Object getUserObject() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public boolean hasDynamicImports() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public boolean isRemovalPending() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public boolean isResolved() {
return this.resolved;
}
/**
* {@inheritDoc}
*/
@Override
public boolean isSingleton() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public void setUserObject(Object userObject) {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public String getName() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public BundleDescription getSupplier() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public Version getVersion() {
return this.bv;
}
public void setBundleSymbolicName(String bsn) {
this.bsn = bsn;
}
public void setVersion(Version bv) {
this.bv = bv;
}
public void setResolved(boolean resolved) {
this.resolved = resolved;
}
public void setBundleId(long bid) {
this.bid = bid;
}
public void addFragment(BundleDescription f) {
this.fragments.add(f);
}
public void addHost(StubBundleDescription bd) {
if (this.hosts == null) {
this.hosts = new ArrayList<BundleDescription>();
}
this.hosts.add(bd);
}
public void addExportPackage(ExportPackageDescription epd) {
this.epds.add(epd);
}
public void addImportPackage(ImportPackageSpecification ips) {
this.ipss.add(ips);
}
public void addRequiredBundle(BundleSpecification bs) {
this.rbs.add(bs);
}
public void addDependent(BundleDescription d) {
this.dependents.add(d);
}
/**
* {@inheritDoc}
*/
@Override
public Map<String, String> getDeclaredDirectives() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public Map<String, Object> getDeclaredAttributes() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public List<BundleCapability> getDeclaredCapabilities(String namespace) {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public int getTypes() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public Bundle getBundle() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public ImportPackageSpecification[] getAddedDynamicImportPackages() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public GenericDescription[] getSelectedGenericCapabilities() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public GenericDescription[] getResolvedGenericRequires() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public BundleCapability getCapability() {
throw new UnsupportedOperationException();
}
/**
* {@inheritDoc}
*/
@Override
public Map<String, Object> getAttributes() {
throw new UnsupportedOperationException();
}
@Override
public List<BundleRequirement> getDeclaredRequirements(String namespace) {
throw new UnsupportedOperationException();
}
@Override
public BundleWiring getWiring() {
throw new UnsupportedOperationException();
}
@Override
public List<Capability> getCapabilities(String arg0) {
throw new UnsupportedOperationException();
}
@Override
public List<Requirement> getRequirements(String arg0) {
throw new UnsupportedOperationException();
}
}