Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.net4j.util.defs/src/org/eclipse/net4j/util/net4jutildefs/impl/ThreadPoolDefImpl.java')
-rw-r--r--plugins/org.eclipse.net4j.util.defs/src/org/eclipse/net4j/util/net4jutildefs/impl/ThreadPoolDefImpl.java81
1 files changed, 81 insertions, 0 deletions
diff --git a/plugins/org.eclipse.net4j.util.defs/src/org/eclipse/net4j/util/net4jutildefs/impl/ThreadPoolDefImpl.java b/plugins/org.eclipse.net4j.util.defs/src/org/eclipse/net4j/util/net4jutildefs/impl/ThreadPoolDefImpl.java
new file mode 100644
index 0000000000..c15de7cefc
--- /dev/null
+++ b/plugins/org.eclipse.net4j.util.defs/src/org/eclipse/net4j/util/net4jutildefs/impl/ThreadPoolDefImpl.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ThreadPoolDefImpl.java,v 1.1 2008-12-28 18:07:29 estepper Exp $
+ */
+package org.eclipse.net4j.util.net4jutildefs.impl;
+
+import org.eclipse.net4j.util.net4jutildefs.Net4jUtilDefsPackage;
+import org.eclipse.net4j.util.net4jutildefs.ThreadPoolDef;
+
+import org.eclipse.emf.ecore.EClass;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Thread Pool Def</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ThreadPoolDefImpl extends ExecutorServiceDefImpl implements ThreadPoolDef {
+
+ private static final String THREADGROUP_IDENTIFIER = "net4j";
+ private ThreadGroup threadGroup;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ThreadPoolDefImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Net4jUtilDefsPackage.Literals.THREAD_POOL_DEF;
+ }
+
+ /**
+ * Gets a executor service instance. The current implementation does not
+ * reuse an instance created in a former call TODO: reuse instances
+ *
+ * @return the instance
+ *
+ */
+ @Override
+ protected Object createInstance() {
+ ExecutorService executorService = Executors
+ .newCachedThreadPool(new DaemonThreadFactory(
+ THREADGROUP_IDENTIFIER));
+ return executorService;
+ }
+
+ private static class DaemonThreadFactory implements ThreadFactory {
+ private ThreadGroup threadGroup;
+
+ public DaemonThreadFactory(String threadGroupIdentifier) {
+ super();
+ this.threadGroup = new ThreadGroup(threadGroupIdentifier);
+ }
+
+ public Thread newThread(Runnable r) {
+ Thread thread = new Thread(threadGroup, r);
+ thread.setDaemon(true);
+ return thread;
+ }
+ }
+
+} //ThreadPoolDefImpl

Back to the top