01: /*******************************************************************************
02: * Copyright (c) 2005, 2007 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.osgi.util.ManifestElement;
13: import org.eclipse.pde.internal.core.ibundle.IBundleModel;
14:
15: public class PackageObject extends PDEManifestElement {
16:
17: private static final long serialVersionUID = 1L;
18:
19: private transient String fVersionAttribute;
20:
21: public PackageObject(ManifestHeader header,
22: ManifestElement element, String versionAttribute) {
23: super (header, element);
24: fVersionAttribute = versionAttribute;
25: }
26:
27: public PackageObject(ManifestHeader header, String name,
28: String version, String versionAttribute) {
29: super (header, name.length() > 0 ? name : "."); //$NON-NLS-1$
30: fVersionAttribute = versionAttribute;
31: if (version != null)
32: addAttribute(fVersionAttribute, version);
33: }
34:
35: public String toString() {
36: StringBuffer buffer = new StringBuffer(getValue());
37: String version = getVersion();
38: if (version != null && version.length() > 0) {
39: buffer.append(" "); //$NON-NLS-1$
40: boolean wrap = Character.isDigit(version.charAt(0));
41: if (wrap)
42: buffer.append("("); //$NON-NLS-1$
43: buffer.append(version);
44: if (wrap)
45: buffer.append(")"); //$NON-NLS-1$
46: }
47: return buffer.toString();
48: }
49:
50: public String getVersion() {
51: String[] version = getAttributes(fVersionAttribute);
52: if (version == null || version.length == 0)
53: return null;
54: if (version.length == 1)
55: return version[0];
56: return version[0] + ',' + version[1];
57: }
58:
59: public String getName() {
60: return getValue();
61: }
62:
63: public void setName(String name) {
64: setValueComponents(new String[] { name });
65: }
66:
67: public void setVersion(String version) {
68: String old = getVersion();
69: setAttribute(fVersionAttribute, version);
70: fHeader.update();
71: firePropertyChanged(this , fVersionAttribute, old, version);
72: }
73:
74: public void reconnect(IBundleModel model, ManifestHeader header,
75: String versionAttribute) {
76: super .reconnect(model, header);
77: // Transient Field: Version Attribute
78: fVersionAttribute = versionAttribute;
79: }
80:
81: }
|