diff src/alice/codesegment/CodeSegmentManager.java @ 335:2f003d5703d5 META_CODESEGMENT

Meta CodeSegment Test
author sugi
date Mon, 14 Apr 2014 15:46:29 +0900
parents 1caa6970cf01
children 5fa184113850
line wrap: on
line diff
--- a/src/alice/codesegment/CodeSegmentManager.java	Mon Apr 07 20:37:38 2014 +0900
+++ b/src/alice/codesegment/CodeSegmentManager.java	Mon Apr 14 15:46:29 2014 +0900
@@ -10,10 +10,10 @@
 
 	private static CodeSegmentManager instance = new CodeSegmentManager();
 	private ThreadPoolExecutor codeSegmentExecutor = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), // initial number of threads
-				                                Runtime.getRuntime().availableProcessors(),
-												Integer.MAX_VALUE, // keepAliveTime
-												TimeUnit.SECONDS,
-												new LinkedBlockingQueue<Runnable>());
+			Runtime.getRuntime().availableProcessors(),
+			Integer.MAX_VALUE, // keepAliveTime
+			TimeUnit.SECONDS,
+			new LinkedBlockingQueue<Runnable>());
 	private Logger logger = Logger.getLogger(CodeSegmentManager.class);
 
 	public static CodeSegmentManager get() {
@@ -21,11 +21,23 @@
 	}
 
 	public static void submit(CodeSegment cs) {
-		CodeSegmentManager csManager = CodeSegmentManager.get();
-		csManager.codeSegmentExecutor.execute(cs);
-		if (csManager.logger.isDebugEnabled()) {
-			csManager.logger.debug(cs.getClass().getName());
+		if (cs.hasMeta()){
+			try {
+				CodeSegment meta = cs.getMetaClass().newInstance();
+				meta.setCodeSegment(cs);
+				meta.setKey();
+
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+
+		} else {
+			CodeSegmentManager csManager = CodeSegmentManager.get();
+			csManager.codeSegmentExecutor.execute(cs);
+			if (csManager.logger.isDebugEnabled()) {
+				csManager.logger.debug(cs.getClass().getName());
+			}
 		}
 	}
-	
+
 }