[Jiemamy-notify:2590] commit [3562] ScriptModelを修正。

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2009年 9月 15日 (火) 00:02:22 JST


Revision: 3562
          http://sourceforge.jp/projects/jiemamy/svn/view?view=rev&revision=3562
Author:   daisuke_m
Date:     2009-09-15 00:02:22 +0900 (Tue, 15 Sep 2009)

Log Message:
-----------
ScriptModelを修正。

Modified Paths:
--------------
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitter.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/script/ScriptModelImpl.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/sql/SqlStatementImpl.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/serializer/JiemamyDomBuilder.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/serializer/JiemamyDomParser.java
    artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/script/PlainScriptEngine.java
    hercules/trunk/jiemamy-integration-test/src/test/java/org/jiemamy/internal/serializer/JiemamySerializerTest.java
    zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/Jiemamy.java
    zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/model/script/ScriptEngine.java
    zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/model/script/ScriptModel.java
    zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/package-info.java
    zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/utils/Advisable.java
    zeus/trunk/jiemamy-test-helper/src/main/java/org/jiemamy/internal/test/ModelUtil.java

Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitter.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitter.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/dialect/internal/impl/DefaultSqlEmitter.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -97,13 +97,7 @@
 		
 		// THINK RootBeginScript と CreateSchemaStatement、どっちが先?
 		
-		ScriptModel rootBeginScriptModel = rootModel.getBeginScript();
-		if (rootBeginScriptModel != null) {
-			String beginScriptResilt = rootBeginScriptModel.process();
-			if (StringUtils.isEmpty(beginScriptResilt) == false) {
-				result.add(new SqlStatementImpl(Literal.of(beginScriptResilt, LiteralType.FRAGMENT)));
-			}
-		}
+		emitScript(rootModel.getBeginScript(), result);
 		
 		if (StringUtils.isEmpty(rootModel.getSchemaName()) == false && config.emitCreateSchemaStatement()) {
 			if (config.emitDropStatements()) {
@@ -127,14 +121,9 @@
 					&& Boolean.TRUE.equals(entityModel.getAdapter(Disablable.class).isDisabled())) {
 				continue;
 			}
-			ScriptModel entityBeginScriptModel = entityModel.getBeginScript();
-			if (entityBeginScriptModel != null) {
-				String beginScriptResult = entityBeginScriptModel.process();
-				if (StringUtils.isEmpty(beginScriptResult) == false) {
-					result.add(new SqlStatementImpl(Literal.of(beginScriptResult, LiteralType.FRAGMENT)));
-				}
-			}
 			
+			emitScript(entityModel.getBeginScript(), result);
+			
 			result.add(emitCreateStatement(entityModel));
 			
 			if (entityModel instanceof TableModel) {
@@ -151,13 +140,8 @@
 					result.add(emitCreateIndexStatement(tableModel, indexModel));
 				}
 			}
-			ScriptModel entityEndScriptModel = entityModel.getEndScript();
-			if (entityEndScriptModel != null) {
-				String endScriptResult = entityEndScriptModel.process();
-				if (StringUtils.isEmpty(endScriptResult) == false) {
-					result.add(new SqlStatementImpl(Literal.of(endScriptResult, LiteralType.FRAGMENT)));
-				}
-			}
+			
+			emitScript(entityModel.getEndScript(), result);
 		}
 		
 		int dataSetIndex = config.getDataSetIndex();
@@ -188,13 +172,7 @@
 			result.add(new SqlStatementImpl(Keyword.of("COMMIT"), Separator.SEMICOLON));
 		}
 		
-		ScriptModel rootEndScriptModel = rootModel.getEndScript();
-		if (rootEndScriptModel != null) {
-			String endScriptResult = rootEndScriptModel.process();
-			if (StringUtils.isEmpty(endScriptResult) == false) {
-				result.add(new SqlStatementImpl(Literal.of(endScriptResult, LiteralType.FRAGMENT)));
-			}
-		}
+		emitScript(rootModel.getEndScript(), result);
 		
 		return result;
 	}
@@ -369,6 +347,22 @@
 		return new SqlStatementImpl(tokens);
 	}
 	
+	private void emitScript(ScriptModel script, List<SqlStatement> result) {
+		if (script == null) {
+			return;
+		}
+		
+		try {
+			String beginScriptResilt = script.process();
+			if (StringUtils.isEmpty(beginScriptResilt) == false) {
+				result.add(new SqlStatementImpl(Literal.of(beginScriptResilt, LiteralType.FRAGMENT)));
+			}
+		} catch (ClassNotFoundException e) {
+			result.add(new SqlStatementImpl(Literal.of("-- ERROR: Cannot resolve " + script.getScriptEngineClassName()
+					+ "\n", LiteralType.FRAGMENT)));
+		}
+	}
+	
 
 	/**
 	 * 属性の出力戦略列挙型。

Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/script/ScriptModelImpl.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/script/ScriptModelImpl.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/script/ScriptModelImpl.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -20,8 +20,6 @@
 
 import java.util.UUID;
 
-import org.apache.commons.lang.Validate;
-
 import org.jiemamy.Jiemamy;
 import org.jiemamy.internal.model.AbstractJiemamyElement;
 import org.jiemamy.model.script.ScriptEngine;
@@ -37,7 +35,7 @@
 	
 	private String script;
 	
-	private String scriptEngine = PlainScriptEngine.class.getName();
+	private String scriptEngineClassName = PlainScriptEngine.class.getName();
 	
 
 	/**
@@ -54,36 +52,22 @@
 		return script;
 	}
 	
-	public String getScriptEngine() {
-		return scriptEngine;
+	public String getScriptEngineClassName() {
+		return scriptEngineClassName;
 	}
 	
-	public String process() {
+	public String process() throws ClassNotFoundException {
 		ScriptEngine engine;
-		try {
-			engine = getJiemamy().getInstanceProvider(ScriptEngine.class).getInstance(scriptEngine);
-			return engine.process(script);
-		} catch (ClassNotFoundException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return script;
+		engine = getJiemamy().getInstanceProvider(ScriptEngine.class).getInstance(scriptEngineClassName);
+		return engine.process(script);
 	}
 	
 	public void setScript(String script) {
 		this.script = script;
 	}
 	
-	public void setScriptEngine(ScriptEngine scriptEngine) {
-		Validate.notNull(scriptEngine);
-		if (ScriptEngine.class.isAssignableFrom(scriptEngine.getClass()) == false) {
-			throw new IllegalArgumentException();
-		}
-		this.scriptEngine = scriptEngine.getClass().getName();
+	public void setScriptEngineClassName(String scriptEngine) {
+		scriptEngineClassName = scriptEngine;
 	}
 	
-	public void setScriptEngine(String scriptEngine) {
-		this.scriptEngine = scriptEngine;
-	}
-	
 }

Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/sql/SqlStatementImpl.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/sql/SqlStatementImpl.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/model/sql/SqlStatementImpl.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -69,8 +69,13 @@
 	}
 	
 	/**
-	 * TODO for daisuke
-	 * @return the tokens
+	 * ステートメントを構成するトークンシーケンスを取得する。
+	 * 
+	 * <p>このメソッドは、インスタンスの持つフィールドをそのまま返す。返される{@link List}を直接操作することで、
+	 * このオブジェクトのフィールドとして保持される{@link List}を変更することができる。</p>
+	 * 
+	 * @return トークンシーケンス
+	 * @see #toTokens()
 	 */
 	public List<Token> getTokens() {
 		return tokens;

Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/serializer/JiemamyDomBuilder.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/serializer/JiemamyDomBuilder.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/serializer/JiemamyDomBuilder.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -420,7 +420,7 @@
 		Element scriptElement;
 		scriptElement = DomUtil.newChild(parentElement, qName);
 		scriptElement.setAttribute(CoreQName.ID.getQNameString(), scriptModel.getId().toString());
-		scriptElement.setAttribute(CoreQName.ENGINE.getQNameString(), scriptModel.getScriptEngine());
+		scriptElement.setAttribute(CoreQName.ENGINE.getQNameString(), scriptModel.getScriptEngineClassName());
 		scriptElement.setTextContent(scriptModel.getScript());
 		writeAdapters(parentElement, scriptModel.getAdapters());
 		

Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/serializer/JiemamyDomParser.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/serializer/JiemamyDomParser.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/internal/serializer/JiemamyDomParser.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -513,7 +513,7 @@
 			scriptModel = factory.newModel(ScriptModel.class, getUUID(script, CoreQName.ID));
 			Attr engine = smartXpath.getAttr(script, "@engine");
 			if (engine != null) {
-				scriptModel.setScriptEngine(engine.getValue());
+				scriptModel.setScriptEngineClassName(engine.getValue());
 			}
 			scriptModel.setScript(script.getTextContent());
 		}

Modified: artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/script/PlainScriptEngine.java
===================================================================
--- artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/script/PlainScriptEngine.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ artemis/trunk/jiemamy-core/src/main/java/org/jiemamy/script/PlainScriptEngine.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -21,7 +21,7 @@
 import org.jiemamy.model.script.ScriptEngine;
 
 /**
- * TODO for daisuke
+ * スクリプトの内容をそのまま出力するプレーン文字列スクリプトエンジン。
  * 
  * @author daisuke
  */

Modified: hercules/trunk/jiemamy-integration-test/src/test/java/org/jiemamy/internal/serializer/JiemamySerializerTest.java
===================================================================
--- hercules/trunk/jiemamy-integration-test/src/test/java/org/jiemamy/internal/serializer/JiemamySerializerTest.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ hercules/trunk/jiemamy-integration-test/src/test/java/org/jiemamy/internal/serializer/JiemamySerializerTest.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -150,8 +150,8 @@
 		assertThat(rootModel.getSchemaName(), is("FOO"));
 		assertThat(rootModel.getBeginScript().getScript(), is("BEGIN;"));
 		assertThat(rootModel.getEndScript().getScript(), is("COMMIT;"));
-		assertThat(rootModel.getBeginScript().getScriptEngine(), is(PlainScriptEngine.class.getName()));
-		assertThat(rootModel.getEndScript().getScriptEngine(), is(PlainScriptEngine.class.getName()));
+		assertThat(rootModel.getBeginScript().getScriptEngineClassName(), is(PlainScriptEngine.class.getName()));
+		assertThat(rootModel.getEndScript().getScriptEngineClassName(), is(PlainScriptEngine.class.getName()));
 		assertThat(rootModel.getDescription(), is("Jiemamyテストモデル1"));
 		
 		assertThat(rootModel.getEntities().size(), is(3));

Modified: zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/Jiemamy.java
===================================================================
--- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/Jiemamy.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/Jiemamy.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -77,7 +77,7 @@
 	 * @since 0.2
 	 */
 	public static Jiemamy newInstance() {
-		return newInstance(findDefaultImplementation(), new DefaultInstanceProvider<Dialect>());
+		return newInstance(findDefaultImplementation(), new HashMap<Class<?>, InstanceProvider<?>>());
 	}
 	
 	/**
@@ -101,6 +101,7 @@
 	 * @throws IllegalArgumentException 引数に{@code null}を与えた場合
 	 * @since 0.2
 	 */
+	@Deprecated
 	public static Jiemamy newInstance(InstanceProvider<Dialect> defaultDialectProvider) {
 		return new Jiemamy(findDefaultImplementation(), defaultDialectProvider);
 	}
@@ -127,7 +128,7 @@
 	 * @since 0.2
 	 */
 	public static Jiemamy newInstance(JiemamyImplementation defaultImplementation) {
-		return newInstance(defaultImplementation, new DefaultInstanceProvider<Dialect>());
+		return newInstance(defaultImplementation, new HashMap<Class<?>, InstanceProvider<?>>());
 	}
 	
 	/**
@@ -152,12 +153,65 @@
 	 * @throws IllegalArgumentException 引数に{@code null}を与えた場合
 	 * @since 0.2
 	 */
+	@Deprecated
 	public static Jiemamy newInstance(JiemamyImplementation implementation,
 			InstanceProvider<Dialect> defaultDialectProvider) {
 		return new Jiemamy(implementation, defaultDialectProvider);
 	}
 	
 	/**
+	 * Jiemamyインスタンスを生成する。
+	 * 
+	 * <p>このメソッドで初期化を行った場合、各動作のデフォルトは下記の通りとなる。</p>
+	 * 
+	 * <table style="border:1px solid black; border-collapse: collapse;">
+	 *   <tr>
+	 *     <td style="border:1px solid black">{@link JiemamyFactory}で使用されるデフォルトのJiemamy実装</td>
+	 *     <td style="border:1px solid black">引数に指定したもの</td>
+	 *   </tr>
+	 *   <tr>
+	 *     <td style="border:1px solid black">デフォルトの{@link Dialect}プロバイダ</td>
+	 *     <td style="border:1px solid black">引数に指定したもの</td>
+	 *   </tr>
+	 * </table>
+	 * 
+	 * @param implementation {@link JiemamyFactory}で使用されるデフォルトのJiemamy実装
+	 * @param instanceProviders {@link JiemamyFactory}で使用されるデフォルトのインスタンス取得戦略
+	 * @return Jiemamyインスタンス
+	 * @throws IllegalArgumentException 引数に{@code null}を与えた場合
+	 * @since 0.2
+	 */
+	public static Jiemamy newInstance(JiemamyImplementation implementation,
+			Map<Class<?>, InstanceProvider<?>> instanceProviders) {
+		return new Jiemamy(implementation, instanceProviders);
+	}
+	
+	/**
+	 * Jiemamyインスタンスを生成する。
+	 * 
+	 * <p>このメソッドで初期化を行った場合、各動作のデフォルトは下記の通りとなる。</p>
+	 * 
+	 * <table style="border:1px solid black; border-collapse: collapse;">
+	 *   <tr>
+	 *     <td style="border:1px solid black">{@link JiemamyFactory}で使用されるデフォルトのJiemamy実装</td>
+	 *     <td style="border:1px solid black">Artemis</td>
+	 *   </tr>
+	 *   <tr>
+	 *     <td style="border:1px solid black">デフォルトの{@link Dialect}プロバイダ</td>
+	 *     <td style="border:1px solid black">引数に指定したもの</td>
+	 *   </tr>
+	 * </table>
+	 * 
+	 * @param instanceProviders {@link JiemamyFactory}で使用されるデフォルトのインスタンス取得戦略のMap
+	 * @return Jiemamyインスタンス
+	 * @throws IllegalArgumentException 引数に{@code null}を与えた場合
+	 * @since 0.2
+	 */
+	public static Jiemamy newInstance(Map<Class<?>, InstanceProvider<?>> instanceProviders) {
+		return new Jiemamy(findDefaultImplementation(), instanceProviders);
+	}
+	
+	/**
 	 * デフォルトの{@link JiemamyImplementation}実装のインスタンスを取得する。
 	 * 
 	 * @return デフォルトのJiemamy実装
@@ -186,8 +240,7 @@
 	/** デフォルトで使用するJiemamy実装 */
 	private final JiemamyImplementation defaultImplementation;
 	
-	/** デフォルトで使用する{@link Dialect}取得戦略 */
-	private final InstanceProvider<Dialect> dialectProvider;
+	private final Map<Class<?>, InstanceProvider<?>> instanceProviders;
 	
 
 	/**
@@ -197,15 +250,34 @@
 	 * @param dialectProvider デフォルトで使用する{@link Dialect}取得戦略
 	 * @throws IllegalArgumentException 引数に{@code null}を与えた場合
 	 */
+	@Deprecated
 	private Jiemamy(JiemamyImplementation defaultImplementation, InstanceProvider<Dialect> dialectProvider) {
 		if (defaultImplementation == null || dialectProvider == null) {
 			throw new IllegalArgumentException();
 		}
 		this.defaultImplementation = defaultImplementation;
-		this.dialectProvider = dialectProvider;
+		
+		Map<Class<?>, InstanceProvider<?>> instanceProviders = new HashMap<Class<?>, InstanceProvider<?>>();
+		instanceProviders.put(Dialect.class, dialectProvider);
+		this.instanceProviders = instanceProviders;
 	}
 	
 	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param defaultImplementation デフォルトで使用するJiemamy実装
+	 * @param instanceProviders デフォルトで使用するインスタンス取得戦略群
+	 * @throws IllegalArgumentException 引数に{@code null}を与えた場合
+	 */
+	private Jiemamy(JiemamyImplementation defaultImplementation, Map<Class<?>, InstanceProvider<?>> instanceProviders) {
+		if (defaultImplementation == null || instanceProviders == null) {
+			throw new IllegalArgumentException();
+		}
+		this.defaultImplementation = defaultImplementation;
+		this.instanceProviders = new HashMap<Class<?>, InstanceProvider<?>>(instanceProviders);
+	}
+	
+	/**
 	 * {@link RootModel}を{@link SqlStatement}のリストに変換する。
 	 * 
 	 * @param rootModel 変換対象
@@ -236,12 +308,15 @@
 	 * @throws ClassNotFoundException SQL方言クラスがクラスパス内に見つからなかった場合
 	 * @throws IllegalArgumentException 引数に{@code null}を与えた場合 
 	 * @since 0.2
+	 * @deprecated use {@link #getInstanceProvider(Class)}, {@link RootModel#getDialectClassName()}
+	 * 		and {@link InstanceProvider#getInstance(String)}
 	 */
+	@Deprecated
 	public Dialect getDialect(RootModel rootModel) throws ClassNotFoundException {
 		if (rootModel == null) {
 			throw new IllegalArgumentException("The validated object is null");
 		}
-		return dialectProvider.getInstance(rootModel.getDialectClassName());
+		return getInstanceProvider(Dialect.class).getInstance(rootModel.getDialectClassName());
 	}
 	
 	/**
@@ -269,15 +344,19 @@
 	}
 	
 	/**
-	 * TODO for daisuke
+	 * インスタンス取得戦略を取得する。
 	 * 
-	 * @param <T> 
-	 * @param clazz
-	 * @return
-	 * @since 0.2
+	 * @param <T> インスタンス取得対象の型
+	 * @param clazz インスタンス取得対象の型
+	 * @return インスタンス取得戦略
+	 * @since 0.3
 	 */
 	public <T>InstanceProvider<T> getInstanceProvider(Class<T> clazz) {
-		return new DefaultInstanceProvider<T>();
+		InstanceProvider<T> instanceProvider = (InstanceProvider<T>) instanceProviders.get(clazz);
+		if (instanceProvider == null) {
+			return new DefaultInstanceProvider<T>();
+		}
+		return instanceProvider;
 	}
 	
 	/**

Modified: zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/model/script/ScriptEngine.java
===================================================================
--- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/model/script/ScriptEngine.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/model/script/ScriptEngine.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -19,13 +19,20 @@
 package org.jiemamy.model.script;
 
 /**
- * TODO for daisuke
+ * スクリプトの処理エンジンインターフェイス。
  * 
- * @since 0.2
+ * @since 0.3
  * @author daisuke
  */
 public interface ScriptEngine {
 	
+	/**
+	 * スクリプトを実行し、結果を得る。
+	 * 
+	 * @param script 実行するスクリプト
+	 * @return スクリプト実行結果
+	 * @since 0.3
+	 */
 	String process(String script);
 	
 }

Modified: zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/model/script/ScriptModel.java
===================================================================
--- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/model/script/ScriptModel.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/model/script/ScriptModel.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -21,23 +21,52 @@
 import org.jiemamy.model.JiemamyElement;
 
 /**
- * TODO for daisuke
+ * 開始/終了スクリプトモデル。
  * 
  * @since 0.3
  * @author daisuke
  */
 public interface ScriptModel extends JiemamyElement {
 	
+	/**
+	 * スクリプトを取得する。
+	 * 
+	 * @return スクリプト
+	 * @since 0.3
+	 */
 	String getScript();
 	
-	String getScriptEngine();
+	/**
+	 * スクリプトエンジンのクラス名を取得する。
+	 * 
+	 * @return スクリプトエンジンのクラス名
+	 * @since 0.3
+	 */
+	String getScriptEngineClassName();
 	
-	String process();
+	/**
+	 * スクリプトを実行し、結果を得る。
+	 * 
+	 * @return スクリプト実行結果
+	 * @throws ClassNotFoundException スクリプトエンジンのクラスが解決できない場合
+	 * @since 0.3
+	 */
+	String process() throws ClassNotFoundException;
 	
+	/**
+	 * スクリプトを設定する。
+	 * 
+	 * @param script スクリプト
+	 * @since 0.3
+	 */
 	void setScript(String script);
 	
-	void setScriptEngine(ScriptEngine scriptEngine);
+	/**
+	 * スクリプトエンジンのクラス名を設定する。
+	 * 
+	 * @param scriptEngineClassName スクリプトエンジンのクラス名
+	 * @since 0.3
+	 */
+	void setScriptEngineClassName(String scriptEngineClassName);
 	
-	void setScriptEngine(String scriptEngine);
-	
 }

Modified: zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/package-info.java
===================================================================
--- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/package-info.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/package-info.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -19,7 +19,7 @@
  * <p>JIRAのカテゴリが不明な場合は、<a href="http://jira.jiemamy.org/jira/browse/GEN">統括プロジェクト</a>
  * に対して課題登録をして頂ければ問題ありません。コミッタが適切なカテゴリに移動を行います。</p>
  * 
- * <p>全体把握の際は、このパッケージの次に{@link org.jiemamy.model}パッケージを把握するとよい。</p>
+ * <p>全体把握の際は、このパッケージの次に{@code org.jiemamy.model}パッケージを把握するとよい。</p>
  * 
  * @author daisuke
  */

Modified: zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/utils/Advisable.java
===================================================================
--- zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/utils/Advisable.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ zeus/trunk/jiemamy-spec-core/src/main/java/org/jiemamy/utils/Advisable.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -21,7 +21,7 @@
 import org.jiemamy.model.script.ScriptModel;
 
 /**
- * TODO for daisuke
+ * モデルのSQL出力前後に、任意のスクリプトを挿入可能なモデル。
  * 
  * @since 0.3
  * @author daisuke

Modified: zeus/trunk/jiemamy-test-helper/src/main/java/org/jiemamy/internal/test/ModelUtil.java
===================================================================
--- zeus/trunk/jiemamy-test-helper/src/main/java/org/jiemamy/internal/test/ModelUtil.java	2009-09-14 15:01:27 UTC (rev 3561)
+++ zeus/trunk/jiemamy-test-helper/src/main/java/org/jiemamy/internal/test/ModelUtil.java	2009-09-14 15:02:22 UTC (rev 3562)
@@ -52,8 +52,8 @@
 		JiemamyFactory factory = jiemamy.getFactory();
 		RootModel rootModel = factory.getRootModel();
 		try {
-			Dialect dialect = jiemamy.getDialect(rootModel);
-			BuiltinDataTypeMold mold = dialect.findDataTypeMold(category);
+			Dialect dialect = jiemamy.getInstanceProvider(Dialect.class).getInstance(rootModel.getDialectClassName());
+			BuiltinDataTypeMold mold = dialect.getMoldManager().findDataTypeMold(category);
 			return factory.newDataType(mold);
 		} catch (ClassNotFoundException e) {
 			throw new UnexpectedConditionError("", e); // TODO doc




Jiemamy-notify メーリングリストの案内
Back to archive index