package envoy.server.processors;
import java.io.IOException;
import envoy.event.NameChange;
import envoy.server.data.Contact;
import envoy.server.data.PersistenceManager;
import envoy.server.net.ObjectWriteProxy;
/**
* Project: envoy-server-standalone
* File: NameChangeProcessor.java
* Created: 26 Mar 2020
*
* @author Leon Hofmeister
* @since Envoy Server Standalone v0.1-beta
*/
public class NameChangeProcessor implements ObjectProcessor {
private static final PersistenceManager persistenceManager = PersistenceManager.getInstance();
@Override
public void process(NameChange nameChange, long socketID, ObjectWriteProxy writeProxy) throws IOException {
Contact toUpdate = persistenceManager.getContactByID(nameChange.getID());
toUpdate.setName(nameChange.get());
persistenceManager.updateContact(toUpdate);
// Notify online contacts of the name change
writeProxy.writeToOnlineContacts(toUpdate.getContacts(), nameChange);
}
@Override
public Class getInputClass() { return NameChange.class; }
}