Request Factory and extra proxy attributes

19 views
Skip to first unread message

navrc

unread,
Aug 29, 2011, 5:33:09 AM8/29/11
to Google Web Toolkit
Hi,
I'm trying RequestFactory and have one problem. I have this entity:

public class Album {

private String name;
private List<Photo> photos;
...
// getters/setters
...
}


public class Photo {

private String description;
private string src;
....
// getters/setters
...
}

and the Proxys:

@ProxyFor(value = Album.class)
public interface AlbumProxy extends EntityProxy {
String getName();
List<PhotoProxy> getPhotos();
....
}

@ProxyFor(value = Photo.class)
public interface PhotoProxy extends EntityProxy {
String getDescription();
String getSrc();
....
}

On the client side I need to display albums names with count of photos
in the album. I want to transfer all infos about photos with:

Request<AlbumProxy> req =
factory.context().getAlbum(albumId).with("photos");

and than call size() on the recived list of photos. I want to change
my entities and add there methods getPhotosCount()

In RPC I used DTO with extra attribute int photosCount; Is it possible
with RF adding to the proxy extra method getPhotosCount() and map it
on the server side to some service method or exists another solution
for this problem?

Thanks Pavel

Thomas Broyer

unread,
Aug 29, 2011, 8:40:35 AM8/29/11
to google-we...@googlegroups.com
Technically, you can (or you should be able to, I'm not so sure after the recent changes in RF in GWT 2.4), but it might sound like using a sledge hammer to crack a nut: it'd require using ServiceLayerDecorator on the server-side (and annotate your getter in your proxy with @SkipInterfaceValidation).

It'd be far easier to add a getPhotosCount to your server-side object too:

   public int getPhotosCount() { return getPhotos().size(); }

Oh, and of course, you can also define a getAlbumPhotosCount(albumId)→Request<Integer> in your RequestContext and implement it in your associated service.
Reply all
Reply to author
Forward
0 new messages