package WLC2OSIS.Utilities ;
import java.lang.System ;
import java.io.* ;
//==============================================================================
/**
* Writes the output XML files.
*/
//==============================================================================
public class XMLWriter{
String Directory ;
String Filename ;
String IndentString = " " ;
FileOutputStream FOS ;
OutputStreamWriter OSW ;
char[] CharBuffer ;
//-----------------------------------------------------------------------------
/**
* Writes an XML file.
*
* @param Directory String giving directory WITHOUT final \.
* @param Filename String giving file name WITHOUT extension.
*
*/
public XMLWriter(String Directory, String Filename){
this.Directory = Directory ;
this.Filename = Filename ;
// this.XMLTag = XMLTag ;
try{
FOS = new FileOutputStream(Directory + File.separator + Filename + ".xml") ;
OSW = new OutputStreamWriter(FOS, "UTF8") ;
}
catch(IOException e){
System.out.println("XMLWriter: Error in opening output file.\n" + e) ;
}
writeString("\n");
writeString("\n");
}
//-----------------------------------------------------------------------------
public void writeString(String Tag, int Level, String S){
String s = "\n" ;
for (int k = 0; k < Level; k++){
s = s + IndentString ;
}
s = s + "<" + Tag + ">" ;
s = s + S ;
s = s + "" + Tag + ">" ;
writeString(s) ;
}
//-----------------------------------------------------------------------------
public void writeAttributedString(String Tag, int Level, String AttributeString, String S){
String s = "\n" ;
for (int k = 0; k < Level; k++){
s = s + IndentString ;
}
s = s + "<" + Tag + " " + AttributeString + ">" ;
s = s + S ;
s = s + "" + Tag + ">" ;
writeString(s) ;
}
// MG: Hack
//-----------------------------------------------------------------------------
public void appendText(String text){
writeString(text) ;
}
//-----------------------------------------------------------------------------
public void writeBoolean(String Tag, int Level, boolean B){
String s = "\n" ;
for (int k = 0; k < Level; k++){
s = s + IndentString ;
}
s = s + "<" + Tag + ">" ;
s = s + B ;
s = s + "" + Tag + ">" ;
writeString(s) ;
}
//-----------------------------------------------------------------------------
public void writeInt(String Tag, int Level, int I){
String s = "\n" ;
for (int k = 0; k < Level; k++){
s = s + IndentString ;
}
s = s + "<" + Tag + ">" ;
s = s + I ;
s = s + "" + Tag + ">" ;
writeString(s) ;
}
//-----------------------------------------------------------------------------
public void openTag(String Tag, int Level){
String s = "\n" ;
for (int k = 0; k < Level; k++){
s = s + IndentString ;
}
s = s + "<" + Tag + ">" ;
writeString(s) ;
}
//-----------------------------------------------------------------------------
public void openAttributedTag(String Tag, int Level, String Attribute, String Value){
String s = "\n" ;
for (int k = 0; k < Level; k++){
s = s + IndentString ;
}
s = s + "<" + Tag + " " + Attribute + "=\"" + Value + "\">" ;
writeString(s) ;
}
//-----------------------------------------------------------------------------
public void closeTag(String Tag, int Level){
String s = "\n" ;
if (Level > 0) {
for (int k = 0; k < Level; k++){
s = s + IndentString ;
}
}
s = s + "" + Tag + ">" ;
writeString(s) ;
}
//-----------------------------------------------------------------------------
public void writeMarker(String Tag, int Level){
String s = "\n" ;
if (Level > 0) {
for (int k = 0; k < Level; k++){
s = s + IndentString ;
}
}
s = s + "<" + Tag + "/>" ;
writeString(s) ;
}
//-----------------------------------------------------------------------------
public void writeException( char Exception){
String s ;
s = "" + Exception + "" ;
writeString(s) ;
}
//-----------------------------------------------------------------------------
public void close(){
// writeString("\n" + XMLTag + ">") ;
closeTag("osis", 0);
try{
OSW.close() ;
}
catch(IOException e){
System.out.println("XMLWriter: Error in closing output file.\n" + e) ;
}
}
//-----------------------------------------------------------------------------
void writeString(String S){
CharBuffer = S.toCharArray() ;
try{
OSW.write(CharBuffer, 0, CharBuffer.length) ;
}
catch(IOException e){
System.out.println("XMLWriter: Error in output file.\n" + e) ;
}
}
//-----------------------------------------------------------------------------
// end of class
}
//==============================================================================
//==============================================================================