Android Open Source - android-reddit Listing Factory






From Project

Back to project page android-reddit.

License

The source code is released under:

MIT License

If you think the Android project android-reddit listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.pocketreddit.library.things.factories;
/*  www  . j a va  2 s  .  co m*/
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.pocketreddit.library.things.Listing;
import com.pocketreddit.library.things.Thing;
import com.pocketreddit.library.things.utils.JsonToThingConverter;

public class ListingFactory<T extends Thing> implements ThingFactory {
    private JSONObject json;

    public ListingFactory(JSONObject json) {
        this.json = json;
    }

    public Listing<T> createThing() throws ThingFactoryException {
        Listing<T> listing = new Listing<T>();
        List<T> children = new ArrayList<T>();

        try {
            JSONObject data = json.getJSONObject("data");
            JSONArray jsonChildren = data.getJSONArray("children");
            for (int i = 0; i < jsonChildren.length(); i++) {
                JsonToThingConverter<T> converter = new JsonToThingConverter<T>();
                T thing = converter.convert(jsonChildren.getJSONObject(i));
                children.add(thing);
            }

            listing.setChildren(children);
            listing.setAfter(data.getString("after"));
            listing.setBefore(data.getString("before"));
        } catch (JSONException e) {
            throw new ThingFactoryException("Failed parsing JSON object into Thing.", e);
        }

        return listing;
    }
}




Java Source Code List

com.pocketreddit.library.Constants.java
com.pocketreddit.library.Created.java
com.pocketreddit.library.JsonParsingException.java
com.pocketreddit.library.Votable.java
com.pocketreddit.library.authentication.AuthenticationException.java
com.pocketreddit.library.authentication.Authenticator.java
com.pocketreddit.library.authentication.LiveAuthenticator.java
com.pocketreddit.library.authentication.LoginResult.java
com.pocketreddit.library.datasources.DataSourceException.java
com.pocketreddit.library.datasources.JsonDataSource.java
com.pocketreddit.library.datasources.LiveDataSource.java
com.pocketreddit.library.datasources.RedditDataSource.java
com.pocketreddit.library.net.HttpHelper.java
com.pocketreddit.library.net.NetException.java
com.pocketreddit.library.things.Account.java
com.pocketreddit.library.things.Comment.java
com.pocketreddit.library.things.Kind.java
com.pocketreddit.library.things.Link.java
com.pocketreddit.library.things.Listing.java
com.pocketreddit.library.things.Message.java
com.pocketreddit.library.things.More.java
com.pocketreddit.library.things.Subreddit.java
com.pocketreddit.library.things.Thing.java
com.pocketreddit.library.things.UserSubmittedContent.java
com.pocketreddit.library.things.factories.CommentFactory.java
com.pocketreddit.library.things.factories.LinkFactory.java
com.pocketreddit.library.things.factories.ListingFactory.java
com.pocketreddit.library.things.factories.SubredditFactory.java
com.pocketreddit.library.things.factories.ThingFactoryException.java
com.pocketreddit.library.things.factories.ThingFactory.java
com.pocketreddit.library.things.utils.JsonToThingConverter.java
com.pocketreddit.library.utils.StreamUtils.java
com.pocketreddit.library.utils.UtilsException.java