equal
deleted
inserted
replaced
330 |
330 |
331 def session_name: String = |
331 def session_name: String = |
332 if (document_snapshot.isDefined) Sessions.DRAFT |
332 if (document_snapshot.isDefined) Sessions.DRAFT |
333 else session_base.session_name |
333 else session_base.session_name |
334 |
334 |
|
335 def session_database(session: String = session_name): Option[Session_Database] = |
|
336 db_hierarchy.find(_.session == session) |
|
337 |
|
338 def session_db(session: String = session_name): Option[SQL.Database] = |
|
339 session_database(session = session).map(_.db) |
|
340 |
335 def session_stack: List[String] = |
341 def session_stack: List[String] = |
336 ((if (document_snapshot.isDefined) List(session_name) else Nil) ::: |
342 ((if (document_snapshot.isDefined) List(session_name) else Nil) ::: |
337 db_hierarchy.map(_.session)).reverse |
343 db_hierarchy.map(_.session)).reverse |
338 |
344 |
339 private def select[A]( |
345 private def select[A]( |
347 snapshot <- document_snapshot.iterator |
353 snapshot <- document_snapshot.iterator |
348 entry_name <- snapshot.all_exports.keysIterator |
354 entry_name <- snapshot.all_exports.keysIterator |
349 res <- select1(entry_name).iterator |
355 res <- select1(entry_name).iterator |
350 } yield entry_name -> res).toList.sortBy(_._1.compound_name).map(_._2) |
356 } yield entry_name -> res).toList.sortBy(_._1.compound_name).map(_._2) |
351 } |
357 } |
352 else { db_hierarchy.find(_.session == name).map(select2).getOrElse(Nil) } |
358 else { session_database(name).map(select2).getOrElse(Nil) } |
353 if (session.nonEmpty) sel(session) else session_stack.flatMap(sel) |
359 if (session.nonEmpty) sel(session) else session_stack.flatMap(sel) |
354 } |
360 } |
355 |
361 |
356 def entry_names(session: String = session_name): List[Entry_Name] = |
362 def entry_names(session: String = session_name): List[Entry_Name] = |
357 select(session, Some(_), _.entry_names) |
363 select(session, Some(_), _.entry_names) |
383 case Some(entry) => entry |
389 case Some(entry) => entry |
384 } |
390 } |
385 |
391 |
386 def theory(theory: String): Theory_Context = |
392 def theory(theory: String): Theory_Context = |
387 new Theory_Context(session_context, theory) |
393 new Theory_Context(session_context, theory) |
388 |
|
389 def read_document(session: String, name: String): Option[Document_Build.Document_Output] = |
|
390 db_hierarchy.find(_.session == session).flatMap(session_db => |
|
391 Document_Build.read_document(session_db.db, session_db.session, name)) |
|
392 |
394 |
393 override def toString: String = |
395 override def toString: String = |
394 "Export.Session_Context(" + commas_quote(session_stack) + ")" |
396 "Export.Session_Context(" + commas_quote(session_stack) + ")" |
395 } |
397 } |
396 |
398 |