public ExtensionsErrorReporter(IFile file) { super(file); fModel = MonitorRegistry.findModel(file.getProject()); try { if (fModel != null && fModel.getUnderlyingResource() != null) fBuildModel = ClasspathUtilCore.getBuild(fModel); } catch (CoreException e) { } }
private static boolean hasChanged(IMonitorModelBase model, long timestamp) { if (model.getUnderlyingResource() != null) { File[] files = new File(model.getInstallLocation()).listFiles(); if (files != null) { for (int i = 0; i < files.length; i++) { if (files[i].isDirectory()) continue; String name = files[i].getName(); if (name.startsWith(Constants.BUNDLE_LOCALIZATION_DEFAULT_BASENAME) && name.endsWith(".properties") // $NON-NLS-1$ && files[i].lastModified() > timestamp) { return true; } } } } return false; }
protected void addBundleManifestChange(CompositeChange result, IProgressMonitor pm) throws CoreException { super.addBundleManifestChange(result, pm); IMonitorModelBase model = MonitorRegistry.findModel(fProject); if (model != null) { BundleDescription desc = model.getBundleDescription(); if (desc != null) { BundleDescription[] dependents = desc.getDependents(); for (int i = 0; i < dependents.length; i++) { if (isAffected(desc, dependents[i])) { IMonitorModelBase candidate = MonitorRegistry.findModel(dependents[i]); if (candidate instanceof IBundlePluginModelBase) { IFile file = (IFile) candidate.getUnderlyingResource(); addBundleManifestChange(file, result, pm); } } } } } }