// Save an individual notebook
public void addNotebook(Notebook tempNotebook, boolean isDirty, boolean local, boolean linked, boolean readOnly) {
boolean check;
SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
NSqlQuery query = new NSqlQuery(db.getConnection());
check = query.prepare("Insert Into "+dbName+" (guid, sequence, name, defaultNotebook, "
+"serviceCreated, serviceUpdated, published, "
+ "publishingUri, publishingOrder, publishingAscending, publishingPublicDescription, "
+ "isDirty, autoEncrypt, stack, "
+ "local, archived, readOnly, linked) Values("
+":guid, :sequence, :name, :defaultNotebook, "
+":serviceCreated, :serviceUpdated, :published, "
+":publishingUri, :publishingOrder, :publishingAscending, :publishingPublicDescription, "
+":isDirty, :autoEncrypt, "
+":stack, :local, false, :readOnly, :linked)");
query.bindValue(":guid", tempNotebook.getGuid());
query.bindValue(":sequence", tempNotebook.getUpdateSequenceNum());
query.bindValue(":name", tempNotebook.getName());
query.bindValue(":defaultNotebook", tempNotebook.isDefaultNotebook());
StringBuilder serviceCreated = new StringBuilder(simple.format(tempNotebook.getServiceCreated()));
StringBuilder serviceUpdated = new StringBuilder(simple.format(tempNotebook.getServiceUpdated()));
if (serviceUpdated.toString() == null)
serviceUpdated = serviceCreated;
query.bindValue(":serviceCreated", serviceCreated.toString());
query.bindValue(":serviceUpdated", serviceCreated.toString());
query.bindValue(":published",tempNotebook.isPublished());
query.bindValue(":linked", linked);
query.bindValue(":readOnly", readOnly);
if (tempNotebook.isPublished() && tempNotebook.getPublishing() != null) {
Publishing p = tempNotebook.getPublishing();
query.bindValue(":publishingUri", p.getUri());
query.bindValue(":publishingOrder", p.getOrder().getValue());
query.bindValue(":publishingAscending", p.isAscending());
query.bindValue(":publishingPublicDescription", p.getPublicDescription());
} else {
query.bindValue(":publishingUri", "");
query.bindValue(":publishingOrder", 1);
query.bindValue(":publishingAscending", 1);
query.bindValue(":publishingPublicDescription", "");
}
if (isDirty)
query.bindValue(":isDirty", true);
else
query.bindValue(":isDirty", false);
query.bindValue(":autoEncrypt", false);
query.bindValue(":local", local);
query.bindValue(":stack", tempNotebook.getStack());
check = query.exec();
if (!check) {
logger.log(logger.MEDIUM, ""+dbName+" Table insert failed.");
logger.log(logger.MEDIUM, query.lastError().toString());
}
}