// Path: domsql/eclipse/plugins/com.ibm.domino.domsql.sqlite/src/com/ibm/domino/domsql/sqlite/driver/jni/JNIUtils.java
// public class JNIUtils {
// 	
// 	private static PrintWriter fileWriter;
// 	private static PrintWriter getPrintWriter() {
// 		if(fileWriter==null) {
// 			try {
// 				String fileName = DomSQL.debug.TRACE_FILE_NAME;
// 				if(StringUtil.isEmpty(fileName)) {
// 					fileName = "c:\\temp\\domsql.log";
// 				}
// 				fileWriter = new PrintWriter(new FileWriter(fileName));
// 			} catch(IOException ex) {
// 			}
// 		}
// 		return fileWriter;
// 	}
// 	
// 	private static boolean beginLine = true;
// 	
//     public static void flush() {
//     	if(DomSQL.debug.TRACE_FILE) {
//     		PrintWriter pw = getPrintWriter();
//     		if(pw!=null) {
//     			pw.flush();
//     			return;
//     		}
//     	}
//         System.err.flush();
//     }
// 
//     public static void print(String s) {
//     	if(DomSQL.debug.TRACE_FILE) {
//     		PrintWriter pw = getPrintWriter();
//     		if(pw!=null) {
//     			pw.print(format(s));
//     			pw.flush();
//     			beginLine = false;
//     			return;
//     		}
//     	}
//         System.err.print(format(s));
// 		beginLine = false;
//     }
// 
//     public static void println(String s) {
//     	if(DomSQL.debug.TRACE_FILE) {
//     		PrintWriter pw = getPrintWriter();
//     		if(pw!=null) {
//     			pw.println(format(s));
//     			pw.flush();
//     			beginLine = true;
//     			return;
//     		}
//     	}
//         System.err.println(format(s));
// 		beginLine = true;
//     }
// 
//     public static void trace(String s, Object...params) {
//         println(format(StringUtil.format(s, params)));
//     }
//     
//     public static void _flush() {
//         flush();
//     }
//     
//     public static void _print(String s) {
//         print("Native: "+s);
//     }
// 
//     public static void _println(String s) {
//         println("Native: "+s);
//     }
// 
//     
//     public static Object createException(String msg) {
//         return DomSQLException.create(null,msg);
//     }
// 
//     @SuppressWarnings("unchecked")
//     public static void addObjectToList(List list, Object v) {
//         list.add(v);
//     }    
//     @SuppressWarnings("unchecked")
//     public static void addIntToList(List list, int v) {
//         list.add(v);
//     }    
//     @SuppressWarnings("unchecked")
//     public static void addLongToList(List list, long v) {
//         list.add(v);
//     }
//     
//     
//     private static DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);
//     private static String format(String s) {
//     	if(beginLine) {
//     		return df.format(new Date())+": "+s;
//     	} else {
//     		return s;
//     	}
//     }
// }


import java.util.ArrayList;
import com.ibm.commons.util.StringUtil;
import com.ibm.domino.domsql.sqlite.driver.jni.JNIUtils;

            Column c=getColumns().get(i);
            println("  #{0}={",i);
            println("    name={0}",c.getColumnName());
            println("    title={0}",c.getColumnTitle());
            println("  }");
        }
        println("]");

        println("indexes[{0}]=[",getIndexes().size());
        for(int i=0; i<getIndexes().size(); i++) {
            Index c=getIndexes().get(i);
            println("  #{0}={",i);
            println("    collation={0}",c.getCollation());

            println("    entries[{0}]=[",c.getEntries().size());
            for(int j=0; j<c.getEntries().size(); j++) {
                IndexEntry e=c.getEntries().get(j);
                println("      #{0}={",j);
                println("        colName={0}",e.getColName());
                println("        desc={0}",e.isDesc());
                println("      }");
                println("    ]");
            }
            println("  }");
        }
        println("]");
    }
    
    private void println(String s, Object...p) {
        String m = StringUtil.format(s, p);

// Path: domsql/eclipse/plugins/com.ibm.domino.domsql.sqlite/src/com/ibm/domino/domsql/sqlite/driver/jni/JNIUtils.java
// public class JNIUtils {
// 	
// 	private static PrintWriter fileWriter;
// 	private static PrintWriter getPrintWriter() {
// 		if(fileWriter==null) {
// 			try {
// 				String fileName = DomSQL.debug.TRACE_FILE_NAME;
// 				if(StringUtil.isEmpty(fileName)) {
// 					fileName = "c:\\temp\\domsql.log";
// 				}
// 				fileWriter = new PrintWriter(new FileWriter(fileName));
// 			} catch(IOException ex) {
// 			}
// 		}
// 		return fileWriter;
// 	}
// 	
// 	private static boolean beginLine = true;
// 	
//     public static void flush() {
//     	if(DomSQL.debug.TRACE_FILE) {
//     		PrintWriter pw = getPrintWriter();
//     		if(pw!=null) {
//     			pw.flush();
//     			return;
//     		}
//     	}
//         System.err.flush();
//     }
// 
//     public static void print(String s) {
//     	if(DomSQL.debug.TRACE_FILE) {
//     		PrintWriter pw = getPrintWriter();
//     		if(pw!=null) {
//     			pw.print(format(s));
//     			pw.flush();
//     			beginLine = false;
//     			return;
//     		}
//     	}
//         System.err.print(format(s));
// 		beginLine = false;
//     }
// 
//     public static void println(String s) {
//     	if(DomSQL.debug.TRACE_FILE) {
//     		PrintWriter pw = getPrintWriter();
//     		if(pw!=null) {
//     			pw.println(format(s));
//     			pw.flush();
//     			beginLine = true;
//     			return;
//     		}
//     	}
//         System.err.println(format(s));
// 		beginLine = true;
//     }
// 
//     public static void trace(String s, Object...params) {
//         println(format(StringUtil.format(s, params)));
//     }
//     
//     public static void _flush() {
//         flush();
//     }
//     
//     public static void _print(String s) {
//         print("Native: "+s);
//     }
// 
//     public static void _println(String s) {
//         println("Native: "+s);
//     }
// 
//     
//     public static Object createException(String msg) {
//         return DomSQLException.create(null,msg);
//     }
// 
//     @SuppressWarnings("unchecked")
//     public static void addObjectToList(List list, Object v) {
//         list.add(v);
//     }    
//     @SuppressWarnings("unchecked")
//     public static void addIntToList(List list, int v) {
//         list.add(v);
//     }    
//     @SuppressWarnings("unchecked")
//     public static void addLongToList(List list, long v) {
//         list.add(v);
//     }
//     
//     
//     private static DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);
//     private static String format(String s) {
//     	if(beginLine) {
//     		return df.format(new Date())+": "+s;
//     	} else {
//     		return s;
//     	}
//     }
// }


// Path: domsql/eclipse/plugins/com.ibm.domino.domsql.sqlite/src/com/ibm/domino/domsql/sqlite/driver/meta/ViewDesign.java
import java.util.ArrayList;
import com.ibm.commons.util.StringUtil;
import com.ibm.domino.domsql.sqlite.driver.jni.JNIUtils;

            Column c=getColumns().get(i);
            println("  #{0}={",i);
            println("    name={0}",c.getColumnName());
            println("    title={0}",c.getColumnTitle());
            println("  }");
        }
        println("]");

        println("indexes[{0}]=[",getIndexes().size());
        for(int i=0; i<getIndexes().size(); i++) {
            Index c=getIndexes().get(i);
            println("  #{0}={",i);
            println("    collation={0}",c.getCollation());

            println("    entries[{0}]=[",c.getEntries().size());
            for(int j=0; j<c.getEntries().size(); j++) {
                IndexEntry e=c.getEntries().get(j);
                println("      #{0}={",j);
                println("        colName={0}",e.getColName());
                println("        desc={0}",e.isDesc());
                println("      }");
                println("    ]");
            }
            println("  }");
        }
        println("]");
    }
    
    private void println(String s, Object...p) {
        String m = StringUtil.format(s, p);

        JNIUtils.println(m);
