|
What this is
Other links
The source code/* * 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.command.annotate; import java.io.*; import java.util.*; import org.netbeans.lib.cvsclient.command.*; /** * Describes annotate information for a file. This is the result of doing a * cvs annotate command. The fields in instances of this object are populated * by response handlers. * @author Milos Kleint */ public class AnnotateInformation extends FileInfoContainer { /** * The file, associated with thiz. */ private File file; /** * List of lines stored here. */ private List linesList; private Iterator iterator; private File tempFile; private File tempDir; private BufferedOutputStream tempOutStream; public AnnotateInformation() { this.tempDir = null; } public AnnotateInformation(File tempDir) { this.tempDir = tempDir; } /** * Getter for property file. * @return Value of property file. */ public File getFile() { return file; } /** * Setter for property file. * @param file New value of property file. */ public void setFile(File file) { this.file = file; } /** * Return a string representation of this object. Useful for debugging. */ public String toString() { StringBuffer buf = new StringBuffer(30); buf.append("\nFile: " + ((file != null)?file.getAbsolutePath():"null")); //NOI18N return buf.toString(); } public AnnotateLine createAnnotateLine() { return new AnnotateLine(); } public void addLine(AnnotateLine line) { linesList.add(line); } public AnnotateLine getFirstLine() { if (linesList == null) { linesList = createLinesList(); } iterator = linesList.iterator(); return getNextLine(); } public AnnotateLine getNextLine() { if (iterator == null) { return null; } if (!iterator.hasNext()) { return null; } return (AnnotateLine)iterator.next(); } /** * Adds the specified line to the temporary file. */ protected void addToTempFile(String line) throws IOException { if (tempOutStream == null) { try { tempFile = File.createTempFile("ann", ".cvs", tempDir); //NOI18N tempFile.deleteOnExit(); tempOutStream = new BufferedOutputStream( new FileOutputStream(tempFile)); } catch (IOException ex) { // TODO } } tempOutStream.write(line.getBytes()); tempOutStream.write('\n'); } protected void closeTempFile() throws IOException { if (tempOutStream == null) { return; } try { tempOutStream.flush(); } finally { tempOutStream.close(); } } public File getTempFile() { return tempFile; } private List createLinesList() { List toReturn = new LinkedList(); BufferedReader reader = null; if (tempFile == null) { return toReturn; } try { reader = new BufferedReader(new FileReader(tempFile)); String line = reader.readLine(); int lineNum = 1; while (line != null) { AnnotateLine annLine = AnnotateBuilder.processLine(line); if (annLine != null) { annLine.setLineNum(lineNum); toReturn.add(annLine); lineNum++; } line = reader.readLine(); } } catch (IOException exc) { } finally { try { if (reader != null) { reader.close(); } } catch (IOException ex2) { } } return toReturn; } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.