Changeset 88 for java/main/src/main/java/com/framsticks/core/Entity.java
- Timestamp:
- 06/30/13 12:48:20 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
java/main/src/main/java/com/framsticks/core/Entity.java
r86 r88 1 1 package com.framsticks.core; 2 2 3 import javax.annotation.OverridingMethodsMustInvokeSuper;4 3 5 4 import com.framsticks.params.annotations.FramsClassAnnotation; 6 import com.framsticks.params.annotations.ParamAnnotation; 7 import com.framsticks.util.dispatching.Thread; 8 import com.framsticks.util.dispatching.Dispatcher; 9 10 import org.apache.commons.configuration.Configuration; 11 import org.apache.log4j.Logger; 12 import com.framsticks.util.dispatching.RunAt; 5 import com.framsticks.util.dispatching.Joinable; 13 6 14 7 /** … … 16 9 */ 17 10 @FramsClassAnnotation 18 public abstract class Entity implements Dispatcher<Entity>{11 public interface Entity extends Joinable { 19 12 20 p rivate final static Logger log = Logger.getLogger(Entity.class);13 public String getName(); 21 14 22 @ParamAnnotation 23 protected String name = "entity"; 24 protected EntityOwner owner; 25 protected Dispatcher<Entity> dispatcher; 26 27 public Entity() { 28 } 29 30 public final String getName() { 31 return name; 32 } 33 34 /** 35 * @param name the name to set 36 */ 37 public final void setName(String name) { 38 this.name = name; 39 if (dispatcher instanceof Thread) { 40 ((Thread<Entity>) dispatcher).setName(name); 41 } 42 } 43 44 /** 45 * @return the owner 46 */ 47 public EntityOwner getOwner() { 48 return owner; 49 } 50 51 /** 52 * @param owner the owner to set 53 */ 54 public void setOwner(EntityOwner owner) { 55 this.owner = owner; 56 } 57 58 @Override 59 public final boolean isActive() { 60 return dispatcher == null || dispatcher.isActive(); 61 } 62 63 @Override 64 public final void invokeLater(RunAt<? extends Entity> runnable) { 65 assert dispatcher != null; 66 dispatcher.invokeLater(runnable); 67 } 68 69 public Dispatcher<Entity> createDefaultDispatcher() { 70 return new Thread<Entity>(name).start(); 71 } 72 73 @OverridingMethodsMustInvokeSuper 74 protected void run() { 75 assert isActive(); 76 log.info("running: " + this); 77 } 15 // /** 16 // * @param name the name to set 17 // */ 18 // @ParamAnnotation 19 // public final void setName(String name) { 20 // this.name = name; 21 // if (dispatcher instanceof Thread) { 22 // ((Thread<Entity>) dispatcher).setName(name); 23 // } 24 // } 78 25 79 26 80 public void configure(Configuration config) { 81 } 27 // public Dispatcher<Entity> createDefaultDispatcher() { 28 // return new Thread<Entity>().setName(name).start(); 29 // } 82 30 83 public Dispatcher<Entity> getDispatcher() { 84 return dispatcher; 85 } 86 87 /** 88 * @param dispatcher the dispatcher to set 89 */ 90 public void setDispatcher(Dispatcher<Entity> dispatcher) { 91 this.dispatcher = dispatcher; 92 } 93 94 public final void start() { 95 if (dispatcher == null) { 96 log.debug("no dispatcher set for " + this + ", creating default one"); 97 setDispatcher(createDefaultDispatcher()); 98 } 99 invokeLater(new RunAt<Entity>() { 100 @Override 101 public void run() { 102 Entity.this.run(); 103 } 104 }); 105 } 106 107 public final void done() { 108 log.info("stopping entity"); 109 if (owner != null) { 110 owner.onDone(); 111 } 112 } 113 31 // public void start() { 32 // if (dispatcher == null) { 33 // log.debug("no dispatcher set for " + this + ", creating default one"); 34 // dispatcher = createDefaultDispatcher(); 35 // } 36 // invokeLater(new RunAt<Entity>() { 37 // @Override 38 // public void run() { 39 // Entity.this.run(); 40 // } 41 // }); 42 // } 114 43 }
Note: See TracChangeset
for help on using the changeset viewer.