package com.socialize.provider; import com.socialize.api.action.ActionType; import com.socialize.entity.*; import org.json.JSONException; import org.json.JSONObject; public class SocializeActionProvider extends DefaultSocializeProvider<SocializeAction> { private SocializeObjectFactory<Comment> commentFactory; private SocializeObjectFactory<Share> shareFactory; private SocializeObjectFactory<View> viewFactory; private SocializeObjectFactory<Like> likeFactory; @Override public SocializeAction fromJSON(JSONObject json, ActionType type) throws JSONException { switch(type) { case COMMENT: return commentFactory.fromJSON(json); case SHARE: return shareFactory.fromJSON(json); case VIEW: return viewFactory.fromJSON(json); case LIKE:return likeFactory.fromJSON(json); } return super.fromJSON(json, type); } public void setCommentFactory(SocializeObjectFactory<Comment> commentFactory) { this.commentFactory = commentFactory; } public void setShareFactory(SocializeObjectFactory<Share> shareFactory) { this.shareFactory = shareFactory; } public void setViewFactory(SocializeObjectFactory<View> viewFactory) { this.viewFactory = viewFactory; } public void setLikeFactory(SocializeObjectFactory<Like> likeFactory) { this.likeFactory = likeFactory; } }