/* SCCS - %W% - %G% - %U% */ // Copyright: Copyright (c) 1997 University of Southern California Brain Project. // Copyright: This software may be freely copied provided the toplevel // Copyright: COPYRIGHT file is included with each such copy. // Copyright: Email nsl@java.usc.edu. // NslFile.java //////////////////////////////////////////////////////////////////////////////// package nslj.src.lang; import java.io.*; import java.util.*; import nslj.src.nsls.struct.*; import tcl.lang.*; public class NslTextFile { private String name; private char access; private FileReader fileIn; private FileWriter fileOut; private BufferedReader brd; private BufferedWriter bwr; private PrintWriter pwr; public NslTextFile(String moduleName, NslHierarchy Parent, String name) { this.name = name; } public NslTextFile(String name) { this.name = name; } public void open(char access) { this.access = access; switch (access) { case 'A': case 'W': try { fileOut = new FileWriter(name, access=='A'); bwr = new BufferedWriter(fileOut); pwr = new PrintWriter(bwr); } catch(FileNotFoundException e1) { System.err.println("NslFile: Can't create or open for writing file "+name); } catch (IOException e2) { System.err.println("NslFile: Can't read line in file "+name); } break; case 'R': try { fileIn = new FileReader(name); brd = new BufferedReader(fileIn); } catch(FileNotFoundException e) { System.err.println("NslFile: Can't open for reading file "+name); } break; } } /* Putf (Only Nsl types) */ public void putf(NslData data) { try { StringBuffer strbuf = new StringBuffer(); strbuf.append(data.nslGetParent().nslGetRealName()); // Object name strbuf.append("."+data.nslGetName()+" "); strbuf.append(data.getDataType()+" "); // Class name strbuf.append(data.getDimensions()+" "); // Dimension strbuf.append("{ "); // Sizes int dim[] = data.getSizes(); for (int i=0;i