package rescuecore2.standard.messages;
import java.io.InputStream;
import java.io.IOException;
import rescuecore2.messages.Message;
import rescuecore2.registry.AbstractMessageFactory;
import rescuecore2.log.Logger;
/**
A factory for standard messages.
*/
public final class StandardMessageFactory extends AbstractMessageFactory<StandardMessageURN> {
/** Singleton instance. */
public static final StandardMessageFactory INSTANCE = new StandardMessageFactory();
/**
Singleton class: private constructor.
*/
private StandardMessageFactory() {
super(StandardMessageURN.class);
}
@Override
public Message makeMessage(StandardMessageURN urn, InputStream data) throws IOException {
switch (urn) {
case AK_REST:
return new AKRest(data);
case AK_MOVE:
return new AKMove(data);
case AK_LOAD:
return new AKLoad(data);
case AK_UNLOAD:
return new AKUnload(data);
case AK_SAY:
return new AKSay(data);
case AK_TELL:
return new AKTell(data);
case AK_EXTINGUISH:
return new AKExtinguish(data);
case AK_RESCUE:
return new AKRescue(data);
case AK_CLEAR:
return new AKClear(data);
case AK_SUBSCRIBE:
return new AKSubscribe(data);
case AK_SPEAK:
return new AKSpeak(data);
default:
Logger.warn("Unrecognised message urn: " + urn);
return null;
}
}
}