Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/service/resolver/BaseDescription.java')
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/service/resolver/BaseDescription.java97
1 files changed, 97 insertions, 0 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/service/resolver/BaseDescription.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/service/resolver/BaseDescription.java
new file mode 100644
index 000000000..3c70068a9
--- /dev/null
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/service/resolver/BaseDescription.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2011 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
+ *******************************************************************************/
+package org.eclipse.osgi.service.resolver;
+
+import java.util.Map;
+import org.osgi.framework.Version;
+import org.osgi.framework.wiring.BundleCapability;
+
+/**
+ * This class represents a base description object for a state. All description
+ * objects in a state have a name and a version.
+ * <p>
+ * This interface is not intended to be implemented by clients. The
+ * {@link StateObjectFactory} should be used to construct instances.
+ * </p>
+ * @since 3.1
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface BaseDescription {
+ /**
+ * Returns the name.
+ * @return the name
+ */
+ public String getName();
+
+ /**
+ * Returns the version.
+ * @return the version
+ */
+ public Version getVersion();
+
+ /**
+ * Returns the bundle which supplies this base description
+ * @return the bundle which supplies this base description
+ * @since 3.2
+ */
+ public BundleDescription getSupplier();
+
+ /**
+ * Returns the directives declared with the description.
+ * This will return all known directives for the type of description.
+ * The set of directives differs for each description type.
+ * @return the known directives declared with the description
+ * @since 3.7
+ */
+ public Map<String, String> getDeclaredDirectives();
+
+ /**
+ * Returns the attributes declared with the description.
+ * This will return all known attributes for the type of description.
+ * The set of attributes differs for each description type.
+ * @return the attributes declared with the description
+ * @since 3.7
+ */
+ public Map<String, Object> getDeclaredAttributes();
+
+ /**
+ * Returns the capability represented by this description.
+ * Some descriptions types may not be able to represent
+ * a capability. In such cases <code>null</code> is
+ * returned.
+ * @return the capability represented by this base description
+ * @since 3.7
+ */
+ public BundleCapability getCapability();
+
+ /**
+ * Returns the user object associated to this description, or
+ * <code>null</code> if none exists.
+ *
+ * @return the user object associated to this description,
+ * or <code>null</code>
+ * @since 3.8
+ */
+ public Object getUserObject();
+
+ /**
+ * Associates a user-provided object to this description, or
+ * removes an existing association, if <code>null</code> is provided. The
+ * provided object is not interpreted in any ways by this
+ * description.
+ *
+ * @param userObject an arbitrary object provided by the user, or
+ * <code>null</code>
+ * @since 3.8
+ */
+ public void setUserObject(Object userObject);
+
+}

Back to the top