From a9e12f6c508810604c8c91ee15451776b08ce1a1 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Mon, 22 Apr 2019 07:41:56 -0400
Subject: [PATCH] Camera capslock fix

---
 timeflow/format/file/TimeflowFormat.java |  301 ++++++++++++++++++++++++++-----------------------
 1 files changed, 159 insertions(+), 142 deletions(-)

diff --git a/timeflow/format/file/TimeflowFormat.java b/timeflow/format/file/TimeflowFormat.java
index 3778235..50310d0 100755
--- a/timeflow/format/file/TimeflowFormat.java
+++ b/timeflow/format/file/TimeflowFormat.java
@@ -13,151 +13,168 @@
 
 public class TimeflowFormat implements Import, Export
 {
-	private static final String END_OF_SCHEMA="#TIMEFLOW\tend-metadata";
-	private static final String END_OF_METADATA="#TIMEFLOW\t====== End of Header. Data below is in tab-delimited format. =====";
-	public ActDB readFile(String fileName, PrintStream messages) throws Exception
-	{
-		return read(new File(fileName), messages);
-	}
-	
-	public static ActDB read(File file, PrintStream out) throws Exception
-	{
-		String text=IO.read(file.getAbsolutePath());		
-		DelimitedText quote=new DelimitedText('\t');
-		Iterator<String[]> lines=quote.read(text).iterator();
-		
 
-		ActDB db=null;
-		List<String> fieldNames=new ArrayList<String>();
-		List<Class> fieldTypes=new ArrayList<Class>();
-		List<Integer> fieldSizes=new ArrayList<Integer>();
-		String source="[unknown]", description="";
-		for (;;)
-		{
-			String[] t=lines.next();
+        private static final String END_OF_SCHEMA = "#TIMEFLOW\tend-metadata";
+        private static final String END_OF_METADATA = "#TIMEFLOW\t====== End of Header. Data below is in tab-delimited format. =====";
 
-			if (t[1].equals("field"))
-			{
-				fieldNames.add(t[2]);
-				fieldTypes.add(FieldFormatCatalog.javaClass(t[3]));
-				if (t.length>4)
-				{
-					fieldSizes.add(Integer.parseInt(t[4]));
-				}
-				else
-					fieldSizes.add(-1);
-			}
-			else if (t[1].equals("source"))
-			{
-				source=t[2];
-			}
-			else if (t[1].equals("description"))
-			{
-				description=t[2];
-				
-			}
-			else if (t[1].equals("end-metadata"))
-				break;
-		}
-		db=new ArrayDB((String[])fieldNames.toArray(new String[0]), 
-				         (Class[])fieldTypes.toArray(new Class[0]), source);
-		db.setDescription(description);
-		for (int i=0; i<fieldNames.size(); i++)
-			if (fieldSizes.get(i)>0)
-				db.getField(fieldNames.get(i)).setRecommendedSize(fieldSizes.get(i));
-		for (;;)
-		{
-			String[] t=lines.next();
-			if (t[1].startsWith("==="))
-				break;		
-			if (t[1].equals("alias"))
-				db.setAlias(db.getField(t[3]), t[2]);
-		}
-		
-		// note: in some cases headers may be in a different order than in
-		// metadata section, so we will read these.
-		String[] headers=lines.next();
-		if (headers.length!=fieldNames.size())
-			throw new IllegalArgumentException("Different number of headers than fields!");
-		
-		
-		while (lines.hasNext())
-		{
-			String[] t=lines.next();
-			Act a=db.createAct();
-			for (int i=0; i<t.length; i++)
-			{
-				Field f=db.getField(headers[i]);
-				FieldFormat format=FieldFormatCatalog.getFormat(f.getType());
-				a.set(f, format.parse(t[i]));
-			}
-		}
-		
-		return db;
-	}
-	
-	public static void write(ActList acts, BufferedWriter bw) throws IOException
-	{
-		ActDB db=acts.getDB();
-		
-		PrintWriter out=new PrintWriter(bw);
-		
-		DelimitedText tab=new DelimitedText('\t');
-		
-		// Write version
-		out.println("#TIMEFLOW\tformat version\t1");
-		
-		// Write source of data.
-		out.println("#TIMEFLOW\tsource\t"+tab.write(db.getSource()));
-		
-		// Write description of data.
-		out.println("#TIMEFLOW\tdescription\t"+tab.write(db.getDescription()));
-		
-		// Write schema.
-		List<Field> fields=db.getFields();
-		for (Field f: fields)
-		{
-			String recSize=f.getRecommendedSize()<=0 ? "" : "\t"+f.getRecommendedSize();
-			out.println("#TIMEFLOW\tfield\t"+tab.write(f.getName())+
-					    "\t"+FieldFormatCatalog.humanName(f.getType())+recSize);
-		}
-		
-		out.println(END_OF_SCHEMA);
-		
-		// Write column mappings.
-		List<String> aliases=DBUtils.getFieldAliases(db);
-		for (String a:aliases)
-			out.println("#TIMEFLOW\talias\t"+a+"\t"+tab.write(db.getField(a).getName()));
-		
-		// Write end of header indicator
-		out.println(END_OF_METADATA);
-		
-		// Write data!
-		new DelimitedFormat('\t').writeDelimited(db, acts, out);
-		
-		out.flush();
-		out.close();
-	}
-	
-	public static void main(String[] args) throws Exception
-	{
-		System.out.println("Reading");
-		ActDB db=read(new File("test/monet.txt"), System.out);
-		System.out.println("# lines: "+db.size());
-	}
+        public ActDB readFile(String fileName, PrintStream messages) throws Exception
+        {
+                return read(new File(fileName), messages);
+        }
 
-	@Override
-	public String getName() {
-		return "TimeFlow Format";
-	}
+        public static ActDB read(File file, PrintStream out) throws Exception
+        {
+                String text = IO.read(file.getAbsolutePath());
+                DelimitedText quote = new DelimitedText('\t');
+                Iterator<String[]> lines = quote.read(text).iterator();
 
-	@Override
-	public ActDB importFile(File file) throws Exception {
-		return read(file, System.out);
-	}
 
-	@Override
-	public void export(TFModel model, BufferedWriter out) throws Exception {
-		write(model.getDB().all(), out);
-	}
+                ActDB db = null;
+                List<String> fieldNames = new ArrayList<String>();
+                List<Class> fieldTypes = new ArrayList<Class>();
+                List<Integer> fieldSizes = new ArrayList<Integer>();
+                String source = "[unknown]", description = "";
+                for (;;)
+                {
+                        String[] t = lines.next();
+
+                        if (t[1].equals("field"))
+                        {
+                                fieldNames.add(t[2]);
+                                fieldTypes.add(FieldFormatCatalog.javaClass(t[3]));
+                                if (t.length > 4)
+                                {
+                                        fieldSizes.add(Integer.parseInt(t[4]));
+                                } else
+                                {
+                                        fieldSizes.add(-1);
+                                }
+                        } else if (t[1].equals("source"))
+                        {
+                                source = t[2];
+                        } else if (t[1].equals("description"))
+                        {
+                                description = t[2];
+
+                        } else if (t[1].equals("end-metadata"))
+                        {
+                                break;
+                        }
+                }
+                db = new ArrayDB((String[]) fieldNames.toArray(new String[0]),
+                        (Class[]) fieldTypes.toArray(new Class[0]), source);
+                db.setDescription(description);
+                for (int i = 0; i < fieldNames.size(); i++)
+                {
+                        if (fieldSizes.get(i) > 0)
+                        {
+                                db.getField(fieldNames.get(i)).setRecommendedSize(fieldSizes.get(i));
+                        }
+                }
+                for (;;)
+                {
+                        String[] t = lines.next();
+                        if (t[1].startsWith("==="))
+                        {
+                                break;
+                        }
+                        if (t[1].equals("alias"))
+                        {
+                                db.setAlias(db.getField(t[3]), t[2]);
+                        }
+                }
+
+                // note: in some cases headers may be in a different order than in
+                // metadata section, so we will read these.
+                String[] headers = lines.next();
+                if (headers.length != fieldNames.size())
+                {
+                        throw new IllegalArgumentException("Different number of headers than fields!");
+                }
+
+
+                while (lines.hasNext())
+                {
+                        String[] t = lines.next();
+                        Act a = db.createAct();
+                        for (int i = 0; i < t.length; i++)
+                        {
+                                Field f = db.getField(headers[i]);
+                                FieldFormat format = FieldFormatCatalog.getFormat(f.getType());
+                                a.set(f, format.parse(t[i]));
+                        }
+                }
+
+                return db;
+        }
+
+        public static void write(ActList acts, BufferedWriter bw) throws IOException
+        {
+                ActDB db = acts.getDB();
+
+                PrintWriter out = new PrintWriter(bw);
+
+                DelimitedText tab = new DelimitedText('\t');
+
+                // Write version
+                out.println("#TIMEFLOW\tformat version\t1");
+
+                // Write source of data.
+                out.println("#TIMEFLOW\tsource\t" + tab.write(db.getSource()));
+
+                // Write description of data.
+                out.println("#TIMEFLOW\tdescription\t" + tab.write(db.getDescription()));
+
+                // Write schema.
+                List<Field> fields = db.getFields();
+                for (Field f : fields)
+                {
+                        String recSize = f.getRecommendedSize() <= 0 ? "" : "\t" + f.getRecommendedSize();
+                        out.println("#TIMEFLOW\tfield\t" + tab.write(f.getName())
+                                + "\t" + FieldFormatCatalog.humanName(f.getType()) + recSize);
+                }
+
+                out.println(END_OF_SCHEMA);
+
+                // Write column mappings.
+                List<String> aliases = DBUtils.getFieldAliases(db);
+                for (String a : aliases)
+                {
+                        out.println("#TIMEFLOW\talias\t" + a + "\t" + tab.write(db.getField(a).getName()));
+                }
+
+                // Write end of header indicator
+                out.println(END_OF_METADATA);
+
+                // Write data!
+                new DelimitedFormat('\t').writeDelimited(db, acts, out);
+
+                out.flush();
+                out.close();
+        }
+
+        public static void main(String[] args) throws Exception
+        {
+                System.out.println("Reading");
+                ActDB db = read(new File("test/monet.txt"), System.out);
+                System.out.println("# lines: " + db.size());
+        }
+
+        @Override
+        public String getName()
+        {
+                return "TimeFlow Format";
+        }
+
+        @Override
+        public ActDB importFile(File file) throws Exception
+        {
+                return read(file, System.out);
+        }
+
+        @Override
+        public void export(TimeflowModel model, BufferedWriter out) throws Exception
+        {
+                write(model.getDB().all(), out);
+        }
 }

--
Gitblit v1.6.2