模型至文字轉換範例詳細資料

本範例包含下列三個轉換:

轉換

說明

類別至文字 -> 主控台 這項轉換接受 UML 類別作為其來源,並將類別的說明(類別的名稱及其屬性和作業,以及作業的參數)寫入「主控台」視圖。
類別至文字 -> 檔案 這項轉換與「類別至文字主控台」轉換相同,但是它是將結果寫入檔案而非「主控台」視圖。
狀態至 JSP 這項轉換接受狀態機作為其來源,並針對具有 ScreenFlow 設定檔中的模板之每一個狀態,都產生一個 JSP 頁面。

如果要瞭解轉換的建構方式,您應執行轉換並探索程式碼。當您閱讀程式碼時, 您應遵循下列準則:

  • 首先查看實作規則的 Java 類別。這個類別出現在其名稱的結尾為 .rules 的套件中。
  • 一組規則集合併成一或多個轉換。這些轉換是由其名稱結尾為 .transforms 之套件中的 Java 類別實作。您應先閱讀 transform 類別的程式碼,然後閱讀 root transforms 的程式碼。
  • 最後,請查看外掛程式 Manifest 檔 plugin.xml 以及 TransformationProvider 類別的程式碼,以瞭解轉換如何連接至「轉換服務」。

類別至文字轉換

這項轉換接受 UML 類別、套件或模型作為其來源,並將類別的名稱及其屬性和作業以及作業的參數寫入「主控台」視圖或檔案。 如果您選擇以某個模型或套件為來源,轉換會寫入該模型或套件所包含的所有類別的詳細資料。

這項轉換有兩種變式:

  1. 類別至文字 -> 主控台:這項轉換會將輸出寫入「主控台」視圖,它不需要目標。

    本範例展示如何執行下列事項:

    • 建立簡式規則,並將它們合併成一或多個轉換
    • 建立轉換提供者
    • 在外掛程式 Manifest 檔 plugin.xml 中說明轉換及其提供者

  2. 類別至文字 -> 檔案:這項轉換會將輸出寫入檔案,並需要專案作為其目標。依預設,它會在您指定的專案中,在 ClassToTextOutput 資料夾中建立名為 class2text.txt 的檔案。您可以使用目標檔名這個轉換內容來變更檔案的預設名稱。

    本範例展示如何執行下列的其他事項:

    • 在外掛程式 Manifest 檔 plugin.xml 中說明轉換內容
    • 操作規則內的轉換內容


狀態至 JSP 轉換

這項轉換接受狀態機中的 UML 狀態作為其來源,並利用 Java Emitter Templates (JET) 產生 JSP 檔格式的網頁。如果您選擇以某個狀態機或區域為來源,這項轉換會針對狀態機中的每一個狀態(具有套用到其中的 ScreenFlow 設定檔中的模板)都產生一個 JSP 檔。

本範例展示如何執行下列事項:

  • 使用模板和關鍵字來選擇性地觸發規則
  • 合併 JET 功能和轉換來產生文字

如果要準備來源狀態機進行轉換,您必須將 ScreenFlow 設定檔套用到包含該狀態機的 UML 模型,並將 ScrrenFlow 設定檔中的模板套用到其狀態來標示狀態機。 ScreenFlow 設定檔包含四個模板:表單編輯表單選擇清單顯示。 這些模板決定所產生頁面之動態內容的樣式。本範例使用模板來判斷顯示樣式是可編輯表單或可選取清單等等。如果您將多個模板套用到某個狀態,則這項轉換僅考量第一個模板。

本範例並使用模板的內容來判斷透過 JSP 頁面所交換的資料。 這項轉換會產生對應於某個狀態的 JSP 頁面, 不過前提是對該狀態套用了四種模板之一。 如果 JSP 檔已存在,則轉換在執行時不會加以改寫。您可以變更轉換是否改寫檔案,方法為將改寫輸出檔這個轉換內容的值設為 true

ScreenFlow 設定檔

下表顯示 ScreenFlow 設定檔中的模板以及它們的內容。表格中的值僅供說明之用。

模板

基礎類別

內容:值

說明

顯示
<<顯示>>
狀態 實體:連絡人
欄位:姓名、地址
指出產生的 JSP 頁面顯示連絡人詳細資料:姓名與地址
編輯表單
<<編輯表單>>
狀態 實體:連絡人
欄位:姓名、地址
指出產生的 JSP 頁面包含可編輯的表單,使用者可以在其中輸入或編輯連絡人詳細資料:姓名與地址
表單
<<表單>>
狀態 欄位:使用者名稱 指出產生的 JSP 頁面包含可輸入使用者名稱的表單
選取清單
<<選取清單>>
狀態 實體:連絡人
欄位:姓名、地址
選取欄位:ID
指示產生的 JSP 頁面包含一份連絡人清單,可用來選取具有特定 ID 的連絡人