package reseau;

/**
 * User: Andréa
 * Date: 23/12/10
 * Time: 04:43
 */
class ResultMessageFactory extends MessageAbstractFactory {

    @Override
    public Message createMessage(Message.MessageAction action) {
        Message msg = new Message();
        switch (action) {
            case CREATE:
                msg.setMessageAction("POST");
                msg.setMessageURL("/groups/{groupId}/results");
                break;
            case READ:
                msg.setMessageAction("GET");
                msg.setMessageURL("/groups/{groupId}/results/{targetId}");
                break;
            case UPDATE:
                msg.setMessageAction("PUT");
                throw new UnsupportedOperationException("Forbid to modify a result");
            case DELETE:
                msg.setMessageAction("DELETE");
                msg.setMessageURL("/groups/{groupId}/results/{targetId}");
                break;
            default:
                throw new IllegalArgumentException("Given message action is not handled by this factory");
        }
        return msg;
    }
}
