blob: d67687a493d069ae22fb3df064258c42aa072328 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2002-2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM - Initial API and implementation
*******************************************************************************/
package org.eclipse.wst.wsi.internal.core.log.impl;
import java.util.Vector;
import org.eclipse.wst.wsi.internal.core.WSIConstants;
import org.eclipse.wst.wsi.internal.core.WSIException;
import org.eclipse.wst.wsi.internal.core.log.Log;
import org.eclipse.wst.wsi.internal.core.log.MessageEntry;
import org.eclipse.wst.wsi.internal.core.util.TestUtils;
import org.eclipse.wst.wsi.internal.core.util.Utils;
import java.io.*;
/**
* This class represents the message log file.
*
* @version 1.0.1
* @author Peter Brittenham (peterbr@us.ibm.com)
*/
public class LogImpl implements Log
{
/**
* Log URI.
*/
protected String logURI = null;
/**
* Start time stamp.
*/
protected String startTimestamp = null;
/**
* Log entries.
*/
protected Vector logEntryList = new Vector();
/**
* Last log entry.
*/
protected MessageEntry lastLogEntry = null;
/**
* Log title.
*/
// ADD: Should we provide a way to set the log title?
protected String logTitle = "Message Log File";
/**
* Style sheet string.
*/
protected String styleSheetString = null;
/**
* @see org.eclipse.wst.wsi.internal.core.log.Log#addLogEntry(LogEntry)
*/
public void addLogEntry(MessageEntry logEntry) throws WSIException
{
// Save last log entry
lastLogEntry = logEntry;
// Add log entry
logEntryList.add(logEntry);
}
/**
* @see org.eclipse.wst.wsi.internal.core.log.Log#getEntryCount()
*/
public int getEntryCount()
{
return logEntryList.size();
}
/**
* @see org.eclipse.wst.wsi.internal.core.log.Log#getLogEntry(int)
*/
public MessageEntry getLogEntry(int index)
{
return (MessageEntry) logEntryList.elementAt(index);
}
/**
* @see org.eclipse.wst.wsi.internal.core.log.Log#getLogEntryList()
*/
public Vector getLogEntryList()
{
return logEntryList;
}
/**
* Get last log entry.
*/
public MessageEntry getLastLogEntry()
{
return lastLogEntry;
}
/**
* Create log entry object.
*/
public MessageEntry createLogEntry()
{
return new MessageEntryImpl();
}
/**
* @see org.eclipse.wst.wsi.internal.core.document.WSIDocument#getLocation()
*/
public String getLocation()
{
return this.logURI;
}
/**
* @see org.eclipse.wst.wsi.internal.core.document.WSIDocument#setLocation(String)
*/
public void setLocation(String documentURI)
{
this.logURI = documentURI;
}
/**
* Set style sheet string.
*/
public void setStyleSheetString(String styleSheetString)
{
this.styleSheetString = styleSheetString;
}
/**
* Get start element string.
*/
public String getStartXMLString(String namespaceName)
{
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
String nsName = namespaceName;
if ((!nsName.equals("") && (!nsName.endsWith(":"))))
nsName += ":";
// Create report element
pw.println(WSIConstants.XML_DECL);
if (this.styleSheetString != null)
pw.println(this.styleSheetString);
// Add XML comment
String comment;
if ((comment = TestUtils.getXMLComment()) != null)
pw.print(comment);
// Log
pw.print("<" + nsName + ELEM_NAME);
// REMOVED: No longer required by the monitor spec
//pw.print(" " + WSIConstants.ATTR_NAME + "=\"" + logTitle + "\"");
pw.println(
" " + WSIConstants.ATTR_TIMESTAMP + "=\"" + Utils.getTimestamp() + "\"");
pw.println(" xmlns=\"" + WSIConstants.NS_URI_WSI_LOG + "\"");
pw.println(
" xmlns:"
+ WSIConstants.NS_NAME_WSI_MONITOR_CONFIG
+ "=\""
+ WSIConstants.NS_URI_WSI_MONITOR_CONFIG
+ "\"");
//pw.println(" xmlns:" + WSIConstants.NS_NAME_WSI_COMMON + "=\"" +
// WSIConstants.NS_URI_WSI_COMMON + "\"");
pw.println(
" xmlns:"
+ WSIConstants.NS_NAME_XSI
+ "=\""
+ WSIConstants.NS_URI_XSI
+ "\">");
// Add monitor tool info
//pw.println(monitor.toXMLString(nsName));
// Return XML string
return sw.toString();
}
/**
* Get end element string.
*/
public String getEndXMLString(String namespaceName)
{
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
String nsName = namespaceName;
if ((!nsName.equals("") && (!nsName.endsWith(":"))))
nsName += ":";
// End log element
pw.println("</" + nsName + ELEM_NAME + ">");
// Return XML string
return sw.toString();
}
/**
* @see org.eclipse.wst.wsi.internal.core.document.DocumentElement#toXMLString(String)
*/
public String toXMLString(String namespaceName)
{
// ADD:
return null;
}
}