package com.cardshifter.server.model; import com.cardshifter.api.*; import com.cardshifter.api.messages.*; import com.cardshifter.api.outgoing.*; import com.cardshifter.core.messages.*; public class AuthorizationDecorator<T extends Message> implements MessageHandler<T> { private final MessageHandler<T> handler; public AuthorizationDecorator(MessageHandler<T> handler) { this.handler = handler; } @Override public void handle(T message, ClientIO client) { if (client.isLoggedIn()) { handler.handle(message, client); } else { client.sendToClient(new ServerErrorMessage("Login required")); } } }