diff options
author | Eike Stepper | 2007-08-04 09:35:13 +0000 |
---|---|---|
committer | Eike Stepper | 2007-08-04 09:35:13 +0000 |
commit | 3e352f3eeda534bb4b0ce821d921e89a3a2361d8 (patch) | |
tree | 2e10c26c0414c89cb54156667e9d332d94e1a9f3 | |
parent | de50f02e7eef796fcdf6ea325c27c554f15742e3 (diff) | |
download | cdo-3e352f3eeda534bb4b0ce821d921e89a3a2361d8.tar.gz cdo-3e352f3eeda534bb4b0ce821d921e89a3a2361d8.tar.xz cdo-3e352f3eeda534bb4b0ce821d921e89a3a2361d8.zip |
*** empty log message ***
4 files changed, 26 insertions, 1 deletions
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/lifecycle/Lifecycle.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/lifecycle/Lifecycle.java index 9563e199a0..2ec7672b57 100644 --- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/lifecycle/Lifecycle.java +++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/lifecycle/Lifecycle.java @@ -37,6 +37,10 @@ public class Lifecycle extends Notifier implements ILifecycle.Introspection { } + /** + * TODO Look into concurrent if there's something faster than synchronized + * (atomic values?) + */ public final synchronized void activate() throws Exception { if (lifecycleState == ILifecycleState.INACTIVE) diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/ILifecycle.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/ILifecycle.java index 677b292059..821b5750dc 100644 --- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/ILifecycle.java +++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/ILifecycle.java @@ -22,8 +22,10 @@ public interface ILifecycle /** * @author Eike Stepper */ - public interface Introspection + public interface Introspection extends ILifecycle { + public ILifecycleState getLifecycleState(); + public boolean isActive(); } } diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/ILifecycleState.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/ILifecycleState.java new file mode 100644 index 0000000000..dd5444a2ca --- /dev/null +++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/ILifecycleState.java @@ -0,0 +1,9 @@ +package org.eclipse.net4j.util.lifecycle; + +/** + * @author Eike Stepper + */ +public enum ILifecycleState +{ + ACTIVATING, ACTIVE, DEACTIVATING, INACTIVE +}
\ No newline at end of file diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java index 6725ec7fa6..c0f3e96ca5 100644 --- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java +++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java @@ -36,6 +36,16 @@ public final class LifecycleUtil { } + public static ILifecycleState getLifecycleState(Object object) + { + if (object instanceof ILifecycle.Introspection) + { + return ((ILifecycle.Introspection)object).getLifecycleState(); + } + + return ILifecycleState.ACTIVE; + } + public static boolean isActive(Object object) { if (object instanceof ILifecycle.Introspection) |