@Override
 public Viewport getViewport(String userId, String clientId, String viewportId) {
   // TODO check args
   if (clientId == null) {
     // TODO check the viewport is owned by the user
     return _viewportFactory.getViewport(viewportId);
   } else {
     return getConnectionByViewportId(userId, viewportId).getViewport(viewportId);
   }
 }
 @Override
 public void createViewport(
     String userId,
     String clientId,
     ViewportDefinition viewportDefinition,
     String viewportId,
     String dataUrl,
     String gridStructureUrl) {
   if (clientId == null) {
     _viewportFactory.createViewport(viewportId, viewportDefinition);
   } else {
     ClientConnection connection = getConnectionByClientId(userId, clientId);
     connection.createViewport(viewportDefinition, viewportId, dataUrl, gridStructureUrl);
     _connectionsByViewportId.put(viewportId, connection);
   }
 }