2009年3月28日 星期六

U11 第二個元件(2)──讀寫XML、Text、與Properties檔案

XMLParserActionAbstract是負責讀寫XML檔案內容到XML Model的程式。大致作法是從輸入的InputStream裡拿到DOM物件,再依序將name、value、comment與attrubutes、children放入資料物件的對應屬性;另一方面再由反方面匯出為字串並將之寫回指定的檔案。XMLDataModelInterface定義了ATTR_ID的常數並在addChild()時取值傳入,另外提供兩個可用xpath字串取得指定節點的方法可以快速拿到想要的節點。

對TextParserActionAbstract的設計是逐行讀入文字檔的內容,放到一個新建child的value。在TextDataModel裡每一個子節點代表了一行資料,另外定義getLineCount()與getTexts()兩個方法提供操作。目前沒有修改內容的需求,即使有也打算把資料對應到JtextArea物件在上面修改後再將內容更新回來。

PropertiesDataModelInterface是讀取properties檔案後的產出,其功能與JDK裡的Properties功能相同,整合到基本Data Model是為了資料讀寫的一致性以便適用在通用編輯器上。PropertiesParserActionAbstract針對這種類型的檔案,讀寫內容與資料物件同步。

這三種類型的檔案內容可謂基本型,因為儲存的格式與Data Model的格式全都有著一對一的對應。將不同格式的資料收集到同一種資料物件裡,意謂著繼承基本Data Model的所有資料物件都能夠用同樣的程式來處理。這種作法讓Data Model在根本上只存在一種唯一的類型,未來繼承出去的所有資料物件全部具有同樣的特性。

沒有留言:

張貼留言