KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > pde > internal > ui > correction > AddExportPackageMarkerResolution


1 /*******************************************************************************
2  * Copyright (c) 2006, 2007 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

11 package org.eclipse.pde.internal.ui.correction;
12
13 import java.util.regex.Pattern JavaDoc;
14
15 import org.eclipse.pde.internal.core.ibundle.IBundle;
16 import org.eclipse.pde.internal.core.text.bundle.Bundle;
17 import org.eclipse.pde.internal.core.text.bundle.BundleModel;
18 import org.eclipse.pde.internal.core.text.bundle.ExportPackageHeader;
19 import org.eclipse.pde.internal.core.text.bundle.ExportPackageObject;
20 import org.eclipse.pde.internal.core.util.PatternConstructor;
21 import org.eclipse.pde.internal.ui.PDEPlugin;
22 import org.eclipse.pde.internal.ui.PDEUIMessages;
23 import org.eclipse.pde.internal.ui.wizards.tools.IOrganizeManifestsSettings;
24 import org.osgi.framework.Constants;
25
26 public class AddExportPackageMarkerResolution extends
27 AbstractManifestMarkerResolution {
28
29     private String JavaDoc fValues;
30
31     public AddExportPackageMarkerResolution(int type, String JavaDoc values) {
32         super(type);
33         this.fValues = values;
34     }
35
36     public String JavaDoc getLabel() {
37         return PDEUIMessages.AddExportPackageResolution_Label;
38     }
39
40     protected void createChange(BundleModel model) {
41         IBundle bundle = model.getBundle();
42         if (bundle instanceof Bundle) {
43             Bundle bun = (Bundle)bundle;
44             ExportPackageHeader header = (ExportPackageHeader) bun.getManifestHeader(Constants.EXPORT_PACKAGE);
45             if(header == null) {
46                 bundle.setHeader(Constants.EXPORT_PACKAGE, ""); //$NON-NLS-1$
47
header = (ExportPackageHeader) bun.getManifestHeader(Constants.EXPORT_PACKAGE);
48             }
49             processPackages(header);
50         }
51     }
52
53     private void processPackages(ExportPackageHeader header) {
54         String JavaDoc[] packages = fValues.split(","); //$NON-NLS-1$
55
String JavaDoc filter = PDEPlugin.getDefault().getDialogSettings().get(IOrganizeManifestsSettings.PROP_INTERAL_PACKAGE_FILTER);
56         if (filter == null)
57             filter = IOrganizeManifestsSettings.VALUE_DEFAULT_FILTER;
58         Pattern JavaDoc pat = PatternConstructor.createPattern(filter, false);
59         for(int i = 0; i < packages.length; i++) {
60             ExportPackageObject obj = header.addPackage(packages[i]);
61             if (pat.matcher(packages[i]).matches())
62                 obj.setInternal(true);
63         }
64     }
65
66 }
67
Popular Tags