Allow external parties to call applyToDelegates().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4838 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -96,6 +96,14 @@ public class PlaceManager
|
|||||||
public void handleEvent (MessageEvent event, PlaceManager pmgr);
|
public void handleEvent (MessageEvent event, PlaceManager pmgr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used to call methods on this place manager's delegates.
|
||||||
|
*/
|
||||||
|
public static interface DelegateOp
|
||||||
|
{
|
||||||
|
public void apply (PlaceManagerDelegate delegate);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a reference to our place configuration object.
|
* Returns a reference to our place configuration object.
|
||||||
*/
|
*/
|
||||||
@@ -178,22 +186,6 @@ public class PlaceManager
|
|||||||
didInit();
|
didInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Called after this place manager has been initialized with its configuration information but
|
|
||||||
* before it has been started up with its place object reference. Derived classes can override
|
|
||||||
* this function and perform any basic initialization that they desire. They should of course
|
|
||||||
* be sure to call <code>super.didInit()</code>.
|
|
||||||
*/
|
|
||||||
protected void didInit ()
|
|
||||||
{
|
|
||||||
// initialize our delegates
|
|
||||||
applyToDelegates(new DelegateOp() {
|
|
||||||
public void apply (PlaceManagerDelegate delegate) {
|
|
||||||
delegate.didInit(_config);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the supplied delegate to the list for this manager.
|
* Adds the supplied delegate to the list for this manager.
|
||||||
*/
|
*/
|
||||||
@@ -205,6 +197,19 @@ public class PlaceManager
|
|||||||
_delegates.add(delegate);
|
_delegates.add(delegate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Applies the supplied operation to this manager's registered delegates.
|
||||||
|
*/
|
||||||
|
public void applyToDelegates (DelegateOp op)
|
||||||
|
{
|
||||||
|
if (_delegates != null) {
|
||||||
|
int dcount = _delegates.size();
|
||||||
|
for (int i = 0; i < dcount; i++) {
|
||||||
|
op.apply(_delegates.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides an opportunity for place managers to ratify the creation of a place based on
|
* Provides an opportunity for place managers to ratify the creation of a place based on
|
||||||
* whatever criterion they may require (based on information available to the manager at this
|
* whatever criterion they may require (based on information available to the manager at this
|
||||||
@@ -437,6 +442,22 @@ public class PlaceManager
|
|||||||
return PlaceObject.class;
|
return PlaceObject.class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called after this place manager has been initialized with its configuration information but
|
||||||
|
* before it has been started up with its place object reference. Derived classes can override
|
||||||
|
* this function and perform any basic initialization that they desire. They should of course
|
||||||
|
* be sure to call <code>super.didInit()</code>.
|
||||||
|
*/
|
||||||
|
protected void didInit ()
|
||||||
|
{
|
||||||
|
// initialize our delegates
|
||||||
|
applyToDelegates(new DelegateOp() {
|
||||||
|
public void apply (PlaceManagerDelegate delegate) {
|
||||||
|
delegate.didInit(_config);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called if the permissions check failed, to give place managers a chance to do any cleanup
|
* Called if the permissions check failed, to give place managers a chance to do any cleanup
|
||||||
* that might be necessary due to their early initialization or permissions checking code.
|
* that might be necessary due to their early initialization or permissions checking code.
|
||||||
@@ -648,27 +669,6 @@ public class PlaceManager
|
|||||||
buf.append(", config=").append(_config);
|
buf.append(", config=").append(_config);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to call methods in delegates.
|
|
||||||
*/
|
|
||||||
protected static interface DelegateOp
|
|
||||||
{
|
|
||||||
public void apply (PlaceManagerDelegate delegate);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Applies the supplied operation to the registered delegates.
|
|
||||||
*/
|
|
||||||
protected void applyToDelegates (DelegateOp op)
|
|
||||||
{
|
|
||||||
if (_delegates != null) {
|
|
||||||
int dcount = _delegates.size();
|
|
||||||
for (int i = 0; i < dcount; i++) {
|
|
||||||
op.apply(_delegates.get(i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Listens for occupant updates. */
|
/** Listens for occupant updates. */
|
||||||
protected SetAdapter _bodyUpdater = new SetAdapter() {
|
protected SetAdapter _bodyUpdater = new SetAdapter() {
|
||||||
public void entryUpdated (EntryUpdatedEvent event) {
|
public void entryUpdated (EntryUpdatedEvent event) {
|
||||||
|
|||||||
Reference in New Issue
Block a user