Changes:
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / obfuscator / ObfuscatorIgnores.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/obfuscator/ObfuscatorIgnores.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/obfuscator/ObfuscatorIgnores.java
new file mode 100644 (file)
index 0000000..c713805
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved.
+ */
+package net.sourceforge.phpeclipse.obfuscator;
+
+import java.io.File;
+import java.io.InputStream;
+
+import net.sourceforge.phpeclipse.PHPeclipsePlugin;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jface.dialogs.ErrorDialog;
+
+/**
+ * <code>ObfuscatorIgnores</code> gives access to the available templates.
+ */
+public class ObfuscatorIgnores extends ObfuscatorIgnoreSet {
+
+  private static final String DEFAULT_FILE = "default-obfuscator.xml"; //$NON-NLS-1$
+  private static final String TEMPLATE_FILE = "obfuscator.xml"; //$NON-NLS-1$
+
+  /** Singleton. */
+  private static ObfuscatorIgnores fgIgnores;
+       private IProject fProject;
+
+  public ObfuscatorIgnores(IProject project) {
+       fProject = project;
+    try {
+      File templateFile = getTemplateFile();
+      if (templateFile.exists()) {
+        addFromFile(templateFile);
+      } else {
+        addFromStream(getDefaultsAsStream());
+        saveToFile(templateFile);
+      }
+
+    } catch (CoreException e) {
+      PHPeclipsePlugin.log(e);
+      ErrorDialog.openError(null, ObfuscatorMessages.getString("Obfuscator.error.title"), //$NON-NLS-1$
+      e.getMessage(), e.getStatus());
+
+      clear();
+    }
+  }
+  /**
+   * Returns an instance of templates.
+   */
+//  public static ObfuscatorIgnores getInstance() {
+//    if (fgIgnores == null)
+//      fgIgnores = create();
+//
+//    return fgIgnores;
+//  }
+//
+//  private static ObfuscatorIgnores create() {
+//    ObfuscatorIgnores templates = new ObfuscatorIgnores();
+//
+//    try {
+//      File templateFile = getTemplateFile();
+//      if (templateFile.exists()) {
+//        templates.addFromFile(templateFile);
+//      } else {
+//        templates.addFromStream(getDefaultsAsStream());
+//        templates.saveToFile(templateFile);
+//      }
+//
+//    } catch (CoreException e) {
+//      PHPeclipsePlugin.log(e);
+//      ErrorDialog.openError(null, ObfuscatorMessages.getString("Templates.error.title"), //$NON-NLS-1$
+//      e.getMessage(), e.getStatus());
+//
+//      templates.clear();
+//    }
+//
+//    return templates;
+//  }
+
+  /**
+   * Resets the template set.
+   */
+  public void reset() throws CoreException {
+    clear();
+    addFromFile(getTemplateFile());
+  }
+
+  /**
+   * Resets the template set with the default templates.
+   */
+  public void restoreDefaults() throws CoreException {
+    clear();
+    addFromStream(getDefaultsAsStream());
+  }
+
+  /**
+   * Saves the template set.
+   */
+  public void save() throws CoreException {
+    saveToFile(getTemplateFile());
+  }
+
+  private InputStream getDefaultsAsStream() {
+    return ObfuscatorIgnores.class.getResourceAsStream(DEFAULT_FILE);
+  }
+
+  private File getTemplateFile() {
+    IPath path = fProject.getLocation(); 
+    // PHPeclipsePlugin.getDefault().getStateLocation();
+    path = path.append(TEMPLATE_FILE);
+
+    return path.toFile();
+  }
+}