changes.
| | Continue with version "0" of the Task class defined in [Getting Started] chapter: |
| {code} |
| package example; |
| |
| public class Task { |
| public boolean prioritized; |
| } |
| {code} |
| Now we have class _CompileTask_ subclassing from Task class as below: |
| {code} |
| package example; |
| |
| import java.util.List; |
| |
| public class CompileTask extends Task { |
| public List<String> srcFiles; |
| } |
| {code} |
| Instance of _CompileTask_ can be serialized to XML with XMT as below: |
| {code} |
| package example; |
| |
| import java.util.ArrayList; |
| |
| import com.pmease.commons.xmt.VersionedDocument; |
| |
| public class Test { |
| public static void main(String args[]) { |
| CompileTask task = new CompileTask(); |
| task.prioritized = true; |
| task.srcFiles = new ArrayList<String>(); |
| task.srcFiles.add("Class1.java"); |
| task.srcFiles.add("Class2.java"); |
| String xml =VersionedDocument.fromBean(task).toXML(); |
| writeXMLToFileOrDatabase(xml); |
| } |
| } |
| {code} |
| The resulting XML will be: |
| {code} |
| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <example.CompileTask version="0.0"> |
| <prioritized>true</prioritized> |
| <srcFiles> |
| <string>Class1.java</string> |
| <string>Class2.java</string> |
| </srcFiles> |
| </example.CompileTask> |
| {code} |
| Pay attention to version attribute of the root element: XMT examines the class hierarchy (except for class _java.lang.Object_) to get current version of each class, and concatenates them with period. Since there are no migrate methods defined in class _Task_ and _CompileTask_, current version of both classes are of "0", so the resulting version of the hierarchy will be "0.0". |