/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.lib.cvsclient.admin; import org.netbeans.lib.cvsclient.util.BugLog; import java.io.File; import java.io.IOException; /** * @author Thomas Singer */ public final class EntriesHandler { // Fields ================================================================= private final Entries entries = new Entries(); private final File entriesFile; private final File entriesDotLogFile; // Setup ================================================================== public EntriesHandler(File directory) { BugLog.getInstance().assertNotNull(directory); entriesFile = AdminUtils.createEntriesFile(directory); entriesDotLogFile = AdminUtils.createEntriesDotLogFile(directory); } // Accessing ============================================================== public Entries getEntries() { return entries; } // Actions ================================================================ public boolean read(String charsetName) throws IOException { synchronized(Entries.class){ entries.read(entriesFile, charsetName); return new EntriesDotLog().readAndApply(entriesDotLogFile, entries); } } public void write(String lineSeparator, final String charsetName) throws IOException { synchronized(Entries.class){ entries.write(entriesFile, lineSeparator, charsetName); entriesDotLogFile.delete(); } } public void readAndWrite(final String lineSeparator, final String charsetName) throws IOException { if (read(charsetName)) { write(lineSeparator,charsetName); } } }