// Path: AnyEditTools/src/de/loskutov/anyedit/AnyEditToolsPlugin.java
// public class AnyEditToolsPlugin extends AbstractUIPlugin {
// 
//     private static AnyEditToolsPlugin plugin;
// 
//     private static boolean isSaveHookInitialized;
// 
//     /**
//      * The constructor.
//      */
//     public AnyEditToolsPlugin() {
//         super();
//         if(plugin != null) {
//             throw new IllegalStateException("AnyEditToolsPlugin is a singleton!");
//         }
//         plugin = this;
//     }
// 
//     public static String getId(){
//         return getDefault().getBundle().getSymbolicName();
//     }
// 
//     /**
//      * Returns the shared instance.
//      */
//     public static AnyEditToolsPlugin getDefault() {
//         return plugin;
//     }
// 
//     /**
//      * Returns the workspace instance.
//      */
//     public static Shell getShell() {
//         return getDefault().getWorkbench().getActiveWorkbenchWindow().getShell();
//     }
// 
//     public static void errorDialog(String message, Throwable error) {
//         Shell shell = getShell();
//         if (message == null) {
//             message = Messages.error;
//         }
//         message = message + " " + error.getMessage();
// 
//         getDefault().getLog().log(
//                 new Status(IStatus.ERROR, getId(), IStatus.OK, message, error));
// 
//         MessageDialog.openError(shell, Messages.title, message);
//     }
// 
//     /**
//      * @param error
//      */
//     public static void logError(String message, Throwable error) {
//         if (message == null) {
//             message = error.getMessage();
//             if (message == null) {
//                 message = error.toString();
//             }
//         }
//         getDefault().getLog().log(
//                 new Status(IStatus.ERROR, getId(), IStatus.OK, message, error));
//     }
// 
//     public static void logInfo(String message) {
//         getDefault().getLog().log(
//                 new Status(IStatus.INFO, getId(), IStatus.OK, message, null));
//     }
// 
//     public static void errorDialog(String message) {
//         Shell shell = getShell();
//         MessageDialog.openError(shell, Messages.title, message);
//     }
// 
//     /**
//      * @param isSaveHookInitialized
//      *            The isSaveHookInitialized to set.
//      */
//     public static void setSaveHookInitialized(boolean isSaveHookInitialized) {
//         AnyEditToolsPlugin.isSaveHookInitialized = isSaveHookInitialized;
//     }
// 
//     /**
//      * @return Returns the isSaveHookInitialized.
//      */
//     public static boolean isSaveHookInitialized() {
//         return isSaveHookInitialized;
//     }
// 
// }


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import org.eclipse.compare.BufferedContent;
import org.eclipse.compare.CompareUI;
import org.eclipse.compare.IEditableContent;
import org.eclipse.compare.IEditableContentExtension;
import org.eclipse.compare.IModificationDate;
import org.eclipse.compare.ITypedElement;
import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.filesystem.URIUtil;
import org.eclipse.core.filesystem.provider.FileInfo;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Shell;
import de.loskutov.anyedit.AnyEditToolsPlugin;
        }
    }

    @Override
    public boolean isDirty() {
        return dirty;
    }

    @Override
    public String getName() {
        return content.getName();
    }

    @Override
    public String getFullName() {
        return content.getFullName();
    }

    @Override
    public String getType() {
        return content.getFileExtension();
    }

    @Override
    public Object[] getChildren() {
        return new StreamContent[0];
    }

    @Override
    public boolean isEditable() {
// Path: AnyEditTools/src/de/loskutov/anyedit/AnyEditToolsPlugin.java
// public class AnyEditToolsPlugin extends AbstractUIPlugin {
// 
//     private static AnyEditToolsPlugin plugin;
// 
//     private static boolean isSaveHookInitialized;
// 
//     /**
//      * The constructor.
//      */
//     public AnyEditToolsPlugin() {
//         super();
//         if(plugin != null) {
//             throw new IllegalStateException("AnyEditToolsPlugin is a singleton!");
//         }
//         plugin = this;
//     }
// 
//     public static String getId(){
//         return getDefault().getBundle().getSymbolicName();
//     }
// 
//     /**
//      * Returns the shared instance.
//      */
//     public static AnyEditToolsPlugin getDefault() {
//         return plugin;
//     }
// 
//     /**
//      * Returns the workspace instance.
//      */
//     public static Shell getShell() {
//         return getDefault().getWorkbench().getActiveWorkbenchWindow().getShell();
//     }
// 
//     public static void errorDialog(String message, Throwable error) {
//         Shell shell = getShell();
//         if (message == null) {
//             message = Messages.error;
//         }
//         message = message + " " + error.getMessage();
// 
//         getDefault().getLog().log(
//                 new Status(IStatus.ERROR, getId(), IStatus.OK, message, error));
// 
//         MessageDialog.openError(shell, Messages.title, message);
//     }
// 
//     /**
//      * @param error
//      */
//     public static void logError(String message, Throwable error) {
//         if (message == null) {
//             message = error.getMessage();
//             if (message == null) {
//                 message = error.toString();
//             }
//         }
//         getDefault().getLog().log(
//                 new Status(IStatus.ERROR, getId(), IStatus.OK, message, error));
//     }
// 
//     public static void logInfo(String message) {
//         getDefault().getLog().log(
//                 new Status(IStatus.INFO, getId(), IStatus.OK, message, null));
//     }
// 
//     public static void errorDialog(String message) {
//         Shell shell = getShell();
//         MessageDialog.openError(shell, Messages.title, message);
//     }
// 
//     /**
//      * @param isSaveHookInitialized
//      *            The isSaveHookInitialized to set.
//      */
//     public static void setSaveHookInitialized(boolean isSaveHookInitialized) {
//         AnyEditToolsPlugin.isSaveHookInitialized = isSaveHookInitialized;
//     }
// 
//     /**
//      * @return Returns the isSaveHookInitialized.
//      */
//     public static boolean isSaveHookInitialized() {
//         return isSaveHookInitialized;
//     }
// 
// }


// Path: AnyEditTools/src/de/loskutov/anyedit/compare/ExternalFileStreamContent.java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import org.eclipse.compare.BufferedContent;
import org.eclipse.compare.CompareUI;
import org.eclipse.compare.IEditableContent;
import org.eclipse.compare.IEditableContentExtension;
import org.eclipse.compare.IModificationDate;
import org.eclipse.compare.ITypedElement;
import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.filesystem.URIUtil;
import org.eclipse.core.filesystem.provider.FileInfo;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Shell;
import de.loskutov.anyedit.AnyEditToolsPlugin;

        }
    }

    @Override
    public boolean isDirty() {
        return dirty;
    }

    @Override
    public String getName() {
        return content.getName();
    }

    @Override
    public String getFullName() {
        return content.getFullName();
    }

    @Override
    public String getType() {
        return content.getFileExtension();
    }

    @Override
    public Object[] getChildren() {
        return new StreamContent[0];
    }

    @Override
    public boolean isEditable() {
        return true;