1 11 package org.eclipse.pde.internal.ui.correction; 12 13 import java.util.regex.Pattern ; 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 fValues; 30 31 public AddExportPackageMarkerResolution(int type, String values) { 32 super(type); 33 this.fValues = values; 34 } 35 36 public String 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, ""); header = (ExportPackageHeader) bun.getManifestHeader(Constants.EXPORT_PACKAGE); 48 } 49 processPackages(header); 50 } 51 } 52 53 private void processPackages(ExportPackageHeader header) { 54 String [] packages = fValues.split(","); String filter = PDEPlugin.getDefault().getDialogSettings().get(IOrganizeManifestsSettings.PROP_INTERAL_PACKAGE_FILTER); 56 if (filter == null) 57 filter = IOrganizeManifestsSettings.VALUE_DEFAULT_FILTER; 58 Pattern 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 |