products/Sources/formale Sprachen/Isabelle/Tools/jEdit/dist/jEdit/org/gjt/sp/jedit image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: IncompatibleThreadStateException.java   Sprache: JAVA

Original von: Isabelle©

/*
 * :tabSize=4:indentSize=4:noTabs=false:
 * :folding=explicit:collapseFolds=1:
 *
 * Copyright (C) 2007 Kazutoshi Satoda
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */


package org.gjt.sp.jedit;

//{{{ Imports
import java.io.File;
import java.io.IOException;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;

import org.xml.sax.helpers.DefaultHandler;

import org.gjt.sp.util.XMLUtilities;
//}}}

/**
 * A XML file in the settings directory.
 * This class provides some common operations to load/save settings
 * from/into a XML file.
 *   - Proper encoding and XML declaration.
 *   - Two stage save.
 *   - Making backup on each save.
 *   - Detection of change on disk.
 */

public class SettingsXML
{
 //{{{ Saver class
 /**
 * A Writer to write XML for saving.
 * The real settings file is not changed until the finish()
 * method succeeds, in which case the previous settings file is
 * backuped.
 */

 public class Saver extends BufferedWriter
 {
  //{{{ writeXMLDeclaration() method
  /**
 * Write the XML 1.0 declaration.
 * This should be the first output.
 */

  public void writeXMLDeclaration() throws IOException
  {
   writeXMLDeclaration("1.0");
  } //}}}

  //{{{ writeXMLDeclaration() method
  /**
 * Write the XML declaration of a specific version.
 * This should be the first output.
 */

  public void writeXMLDeclaration(String version)
   throws IOException
  {
   write("
    + " version=\"" + version + "\""
    + " encoding=\"" + encoding + "\""
    + " ?>");
   newLine();
  } //}}}

  //{{{ finish() method
  /**
 * Perform the final step of saving.
 */

  public void finish() throws IOException
  {
   close();
   jEdit.backupSettingsFile(file);
   file.delete();
   twoStageSaveFile.renameTo(file);
   knownLastModified = file.lastModified();
  } //}}}

  //{{{ Private members
  private File twoStageSaveFile;
  private static final String encoding = "UTF-8";

  // Only used by SettingsXML#opneSaver().
  Saver() throws IOException
  {
   this(new File(file.getParentFile(),
    "#" + file.getName() + "#save#"));
  }

  // A workaround for a restriction of super().
  private Saver(File twoStageSaveFile) throws IOException
  {
   super(new OutputStreamWriter(
    new FileOutputStream(twoStageSaveFile)
    , encoding));
   this.twoStageSaveFile = twoStageSaveFile;
  }

  //}}}
 } //}}}

 //{{{ Constructor
 /**
 * Construct a SettingsXML with specific location and name.
 * @param settingsDirectory
 *  The settings directory of jedit
 * @param name
 *  The file name will be (name + ".xml")
 */

 public SettingsXML(String settingsDirectory, String name)
 {
  String filename = name + ".xml";
  file = new File(MiscUtilities.constructPath(
   settingsDirectory, filename));
 } //}}}
 
 public SettingsXML(File f)
 {
  file = f;
 }

 //{{{ fileExits() method
 /**
 * Returns true if the file exists.
 */

 public boolean fileExists()
 {
  return file.exists();
 } //}}}

 //{{{ load() method
 /**
 * Parse the XML file to load.
 * @param handler
 *  The handler to receive SAX notifications.
 */

 public void load(DefaultHandler handler) throws IOException
 {
  XMLUtilities.parseXML(new FileInputStream(file), handler);
  knownLastModified = file.lastModified();
 } //}}}

 //{{{ openSaver() method
 /**
 * Open the file to save in XML.
 */

 public Saver openSaver() throws IOException
 {
  return new Saver();
 } //}}}

 //{{{ hasChangedOnDisk() method
 /**
 * Returns true if the file has been changed on disk.
 * This is based on the last modified time at the last saving
 * or loading.
 */

 public boolean hasChangedOnDisk()
 {
  return file.exists()
   && (file.lastModified() != knownLastModified);
 } //}}}

 //{{{ toString() method
 /**
 * Returns the file's path.
 */

 public String toString()
 {
  return file.toString();
 } //}}}

 //{{{ Private members
 private File file;
 private long knownLastModified;
 //}}}
}

¤ Dauer der Verarbeitung: 0.15 Sekunden  (vorverarbeitet)  ¤





Download des
Quellennavigators
Download des
sprechenden Kalenders

in der Quellcodebibliothek suchen




Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.


Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff