01: /*******************************************************************************
02: * Copyright (c) 2005, 2006 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.pde.internal.core.text.bundle;
11:
12: import org.eclipse.pde.internal.core.ibundle.IBundle;
13: import org.osgi.framework.Constants;
14:
15: public class BundleSymbolicNameHeader extends SingleManifestHeader {
16:
17: private static final long serialVersionUID = 1L;
18:
19: public BundleSymbolicNameHeader(String name, String value,
20: IBundle bundle, String lineDelimiter) {
21: super (name, value, bundle, lineDelimiter);
22: }
23:
24: public void setId(String id) {
25: setMainComponent(id);
26: }
27:
28: public String getId() {
29: return getMainComponent();
30: }
31:
32: public void setSingleton(boolean singleton) {
33: if (getManifestVersion() > 1) {
34: setDirective(Constants.SINGLETON_DIRECTIVE,
35: singleton ? Boolean.toString(true) : null);
36: if (getAttribute(Constants.SINGLETON_DIRECTIVE) != null)
37: setAttribute(Constants.SINGLETON_DIRECTIVE, null);
38: } else {
39: setAttribute(Constants.SINGLETON_DIRECTIVE,
40: singleton ? Boolean.toString(true) : null);
41: if (getDirective(Constants.SINGLETON_DIRECTIVE) != null)
42: setDirective(Constants.SINGLETON_DIRECTIVE, null);
43: }
44: }
45:
46: public boolean isSingleton() {
47: String value = getManifestVersion() > 1 ? getDirective(Constants.SINGLETON_DIRECTIVE)
48: : getAttribute(Constants.SINGLETON_DIRECTIVE);
49: return "true".equals(value); //$NON-NLS-1$
50: }
51:
52: public void fixUnsupportedDirective() {
53: String value = getDirective(Constants.SINGLETON_DIRECTIVE);
54: if (value != null) {
55: setAttribute(Constants.SINGLETON_DIRECTIVE, value);
56: setDirective(Constants.SINGLETON_DIRECTIVE, null);
57: }
58: }
59:
60: }
|