author | wenzelm |
Tue, 05 Jan 2010 18:23:39 +0100 | |
changeset 34838 | 08a72dc4868e |
parent 34833 | 683ddf358698 |
child 34853 | 32b49207ca20 |
permissions | -rw-r--r-- |
34660 | 1 |
/* |
34703 | 2 |
* Changes of plain text |
34660 | 3 |
* |
4 |
* @author Fabian Immler, TU Munich |
|
34838 | 5 |
* @author Makarius |
34660 | 6 |
*/ |
7 |
||
8 |
package isabelle.proofdocument |
|
9 |
||
34703 | 10 |
|
34660 | 11 |
class Change( |
12 |
val parent: Option[Change], |
|
34838 | 13 |
val edits: List[Text_Edit], |
34833
683ddf358698
recovered explicit Changed.id (copy of future document) -- avoids premature joining of result;
wenzelm
parents:
34827
diff
changeset
|
14 |
val id: Isar_Document.Document_ID, |
34824
ac35eee85f5c
renamed current_document to recent_document (might be a bit older than current_change);
wenzelm
parents:
34759
diff
changeset
|
15 |
val result: Future[Document.Result]) |
34660 | 16 |
{ |
34833
683ddf358698
recovered explicit Changed.id (copy of future document) -- avoids premature joining of result;
wenzelm
parents:
34827
diff
changeset
|
17 |
def ancestors: Iterator[Change] = new Iterator[Change] |
683ddf358698
recovered explicit Changed.id (copy of future document) -- avoids premature joining of result;
wenzelm
parents:
34827
diff
changeset
|
18 |
{ |
683ddf358698
recovered explicit Changed.id (copy of future document) -- avoids premature joining of result;
wenzelm
parents:
34827
diff
changeset
|
19 |
private var state: Option[Change] = Some(Change.this) |
683ddf358698
recovered explicit Changed.id (copy of future document) -- avoids premature joining of result;
wenzelm
parents:
34827
diff
changeset
|
20 |
def hasNext = state.isDefined |
683ddf358698
recovered explicit Changed.id (copy of future document) -- avoids premature joining of result;
wenzelm
parents:
34827
diff
changeset
|
21 |
def next = |
683ddf358698
recovered explicit Changed.id (copy of future document) -- avoids premature joining of result;
wenzelm
parents:
34827
diff
changeset
|
22 |
state match { |
683ddf358698
recovered explicit Changed.id (copy of future document) -- avoids premature joining of result;
wenzelm
parents:
34827
diff
changeset
|
23 |
case Some(change) => state = change.parent; change |
683ddf358698
recovered explicit Changed.id (copy of future document) -- avoids premature joining of result;
wenzelm
parents:
34827
diff
changeset
|
24 |
case None => throw new NoSuchElementException("next on empty iterator") |
683ddf358698
recovered explicit Changed.id (copy of future document) -- avoids premature joining of result;
wenzelm
parents:
34827
diff
changeset
|
25 |
} |
683ddf358698
recovered explicit Changed.id (copy of future document) -- avoids premature joining of result;
wenzelm
parents:
34827
diff
changeset
|
26 |
} |
34660 | 27 |
|
34825 | 28 |
def document: Document = result.join._1 |
29 |
def document_edits: List[Document.Structure_Edit] = result.join._2 |
|
34660 | 30 |
} |