Lines 11-42
Link Here
|
11 |
package org.eclipse.ui; |
11 |
package org.eclipse.ui; |
12 |
|
12 |
|
13 |
/** |
13 |
/** |
14 |
* Interface to a memento used for saving the important state of an object |
14 |
* Interface to a memento used for saving the important state of an object in a |
15 |
* in a form that can be persisted in the file system. |
15 |
* form that can be persisted in the file system. |
16 |
* <p> |
16 |
* <p> |
17 |
* Mementos were designed with the following requirements in mind: |
17 |
* Mementos were designed with the following requirements in mind: |
18 |
* <ol> |
18 |
* <ol> |
19 |
* <li>Certain objects need to be saved and restored across platform sessions. |
19 |
* <li>Certain objects need to be saved and restored across platform sessions.</li> |
20 |
* </li> |
20 |
* <li>When an object is restored, an appropriate class for an object might not |
21 |
* <li>When an object is restored, an appropriate class for an object might not |
21 |
* be available. It must be possible to skip an object in this case.</li> |
22 |
* be available. It must be possible to skip an object in this case.</li> |
22 |
* <li>When an object is restored, the appropriate class for the object may be |
23 |
* <li>When an object is restored, the appropriate class for the object may be |
23 |
* different from the one when the object was originally saved. If so, the new |
24 |
* different from the one when the object was originally saved. If so, the |
24 |
* class should still be able to read the old form of the data.</li> |
25 |
* new class should still be able to read the old form of the data.</li> |
|
|
26 |
* </ol> |
25 |
* </ol> |
27 |
* </p> |
26 |
* </p> |
28 |
* <p> |
27 |
* <p> |
29 |
* Mementos meet these requirements by providing support for storing a |
28 |
* Mementos meet these requirements by providing support for storing a mapping |
30 |
* mapping of arbitrary string keys to primitive values, and by allowing |
29 |
* of arbitrary string keys to primitive values, and by allowing mementos to |
31 |
* mementos to have other mementos as children (arranged into a tree). |
30 |
* have other mementos as children (arranged into a tree). A robust external |
32 |
* A robust external storage format based on XML is used. |
31 |
* storage format based on XML is used. |
33 |
* </p><p> |
32 |
* </p> |
34 |
* The key for an attribute may be any alpha numeric value. However, the |
33 |
* <p> |
35 |
* value of <code>TAG_ID</code> is reserved for internal use. |
34 |
* The key for an attribute may be any alpha numeric value that doesn't start |
36 |
* </p><p> |
35 |
* with a number, or a valid XML <a |
|
|
36 |
* href="http://www.w3.org/TR/REC-xml/#NT-Name">Name</a>. However, the value of |
37 |
* <code>TAG_ID</code> is reserved for internal use. |
38 |
* </p> |
39 |
* <p> |
37 |
* This interface is not intended to be implemented or extended by clients. |
40 |
* This interface is not intended to be implemented or extended by clients. |
38 |
* </p> |
41 |
* </p> |
39 |
* |
42 |
* |
40 |
* @see IPersistableElement |
43 |
* @see IPersistableElement |
41 |
* @see IElementFactory |
44 |
* @see IElementFactory |
42 |
* @noimplement This interface is not intended to be implemented by clients. |
45 |
* @noimplement This interface is not intended to be implemented by clients. |