package edu.harvard.med.screensaver.rest;
import com.thoughtworks.xstream.converters.MarshallingContext;
import com.thoughtworks.xstream.converters.UnmarshallingContext;
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import org.apache.commons.lang.NotImplementedException;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import edu.harvard.med.screensaver.model.users.LabHead;
import edu.harvard.med.screensaver.model.users.ScreeningRoomUser;
import edu.harvard.med.screensaver.model.users.ScreensaverUser;
/**
* TODO: consider a class hierarchy of ScreensaverUserConverter<-ScreeningRoomUserConverter<-LabHeadConverter
*/
@Component
public class ScreensaverUserConverter extends RestConverter
{
private static final Logger log = Logger.getLogger(ScreensaverUserConverter.class);
public boolean canConvert(Class clazz)
{
return ScreensaverUser.class.isAssignableFrom(clazz) && !ScreeningRoomUser.class.isAssignableFrom(clazz) && ! LabHead.class.isAssignableFrom(clazz);
}
public void marshal(final Object value, HierarchicalStreamWriter writer, MarshallingContext context)
{
throw new NotImplementedException();
}
protected final void write(final XStreamUtil util, final ScreensaverUser user)
{
util.writeNode(user.getEntityId(), "id");
util.writeNode(user.getFirstName(), "firstName");
util.writeNode(user.getLastName(), "lastName");
}
public Object unmarshal(HierarchicalStreamReader reader,
UnmarshallingContext context)
{
return null;
}
}