2011-02-06 31 views
0

我有一個包含以下幾列從圖案製作條件

dependentColumn : values table1.column2, table1.column3, table3.column4.... 

condition : values ([table1.column2.LAST3][=ABC][OR][=DEF]), 
    ([table1.column2.ALL][=ABC]), 
    (([table1.column2][=ABC][OR][table1.column2][!="DEF"])[AND] 
     ([table1.column2][!="DEF"])) 
... 

values: abc, [table1.column1.LAST3] 

現在我需要解析包含在狀態列中的值和寫入方含的條件的代碼,並把值到dependentColumns

我的擔心是根據'條件'欄中提到的條件來制定java條件。條件存儲在一個模式中。 ANDs和ORs可以有多個條件。我如何解決這個問題。我知道它的可能性,但我有點困惑。我可以使用Stack Class,但我之前沒有使用它。

如果有一個簡單的出路,以解決請告訴我

+0

也許一些示例表格數據和期望的最終結果將有助於澄清? – 2011-02-06 20:24:46

+0

有一些缺失的信息 - 你有哪張表格?數據庫表?電子表格?一個文本文件? 你的奇怪狀況是什麼?這是否存儲爲表格中的文本? – 2011-02-06 20:25:36

回答

0

這不是完全清楚你想從你的問題做什麼,但這裏是我的理解。它看起來像是在嘗試將某些值編碼到數據庫表的「dependentColumn」列所描述的某些db對象中,其中值是通過評估在「condition」列中編碼的領域特定語言(DSL)來定義的。

一個關鍵的方面是這個DSL有多複雜。一個簡單的語言可以用正則表達式進行分析,並像您提到的那樣使用堆棧進行評估,但在您的示例中,您可能已經分組了可能需要使用實際解析器生成器的布爾表達式(例如ANTLR)。