Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
twitter4j.internal.json.z_T4JInternalJSONImplFactory Maven / Gradle / Ivy
/*
* Copyright (C) 2007 Yusuke Yamamoto
* Copyright (C) 2011 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package twitter4j.internal.json;
import twitter4j.conf.Configuration;
import twitter4j.internal.http.HttpResponse;
import twitter4j.internal.models4j.*;
import twitter4j.internal.org.json.JSONArray;
import twitter4j.internal.org.json.JSONException;
import twitter4j.internal.org.json.JSONObject;
import twitter4j.internal.util.z_T4JInternalStringUtil;
import java.util.Map;
/**
* @author Yusuke Yamamoto - yusuke at mac.com
* @since Twitter4J 2.2.4
*/
public class z_T4JInternalJSONImplFactory implements z_T4JInternalFactory {
private static final long serialVersionUID = 5217622295050444866L;
private Configuration conf;
public z_T4JInternalJSONImplFactory(Configuration conf) {
this.conf = conf;
}
@Override
public Status createStatus(JSONObject json) throws TwitterException {
return new StatusJSONImpl(json);
}
@Override
public User createUser(JSONObject json) throws TwitterException {
return new UserJSONImpl(json);
}
@Override
public UserList createAUserList(JSONObject json) throws TwitterException {
return new UserListJSONImpl(json);
}
@Override
public DirectMessage createDirectMessage(JSONObject json) throws TwitterException {
return new DirectMessageJSONImpl(json);
}
@Override
public Map createRateLimitStatuses(HttpResponse res) throws TwitterException {
return RateLimitStatusJSONImpl.createRateLimitStatuses(res, conf);
}
@Override
public Status createStatus(HttpResponse res) throws TwitterException {
return new StatusJSONImpl(res, conf);
}
@Override
public Media createMediaUpload(HttpResponse res) throws TwitterException {
return new twitter4j.internal.json.TwitterUploadMediaResponseImpl(res, conf);
}
@Override
public ResponseList createStatusList(HttpResponse res) throws TwitterException {
return StatusJSONImpl.createStatusList(res, conf);
}
/**
* returns a GeoLocation instance if a "geo" element is found.
*
* @param json JSONObject to be parsed
* @return GeoLocation instance
* @throws TwitterException when coordinates is not included in geo element (should be an API side issue)
*/
/*package*/
static GeoLocation createGeoLocation(JSONObject json) throws TwitterException {
try {
if (!json.isNull("geo")) {
String coordinates = json.getJSONObject("geo").getString("coordinates");
coordinates = coordinates.substring(1, coordinates.length() - 1);
String[] point = z_T4JInternalStringUtil.split(coordinates, ",");
return new GeoLocation(Double.parseDouble(point[0]), Double.parseDouble(point[1]));
}
} catch (JSONException jsone) {
throw new TwitterException(jsone);
}
return null;
}
/*package*/
static GeoLocation[][] coordinatesAsGeoLocationArray(JSONArray coordinates) throws TwitterException {
try {
GeoLocation[][] boundingBox = new GeoLocation[coordinates.length()][];
for (int i = 0; i < coordinates.length(); i++) {
JSONArray array = coordinates.getJSONArray(i);
boundingBox[i] = new GeoLocation[array.length()];
for (int j = 0; j < array.length(); j++) {
JSONArray coordinate = array.getJSONArray(j);
boundingBox[i][j] = new GeoLocation(coordinate.getDouble(1), coordinate.getDouble(0));
}
}
return boundingBox;
} catch (JSONException jsone) {
throw new TwitterException(jsone);
}
}
public static RateLimitStatus createRateLimitStatusFromResponseHeader(HttpResponse res) {
return RateLimitStatusJSONImpl.createFromResponseHeader(res);
}
@Override
public Trends createTrends(HttpResponse res) throws TwitterException {
return new TrendsJSONImpl(res, conf);
}
@Override
public User createUser(HttpResponse res) throws TwitterException {
return new UserJSONImpl(res, conf);
}
@Override
public ResponseList createUserList(HttpResponse res) throws TwitterException {
return UserJSONImpl.createUserList(res, conf);
}
@Override
public ResponseList createUserListFromJSONArray(HttpResponse res) throws TwitterException {
return UserJSONImpl.createUserList(res.asJSONArray(), res, conf);
}
@Override
public ResponseList createUserListFromJSONArray_Users(HttpResponse res) throws TwitterException {
try {
return UserJSONImpl.createUserList(res.asJSONObject().getJSONArray("users"), res, conf);
} catch (JSONException jsone) {
throw new TwitterException(jsone);
}
}
@Override
public PagableResponseList createPagableUserList(HttpResponse res) throws TwitterException {
return UserJSONImpl.createPagableUserList(res, conf);
}
@Override
public UserList createAUserList(HttpResponse res) throws TwitterException {
return new UserListJSONImpl(res, conf);
}
@Override
public PagableResponseList createPagableUserListList(HttpResponse res) throws TwitterException {
return UserListJSONImpl.createPagableUserListList(res, conf);
}
@Override
public ResponseList createUserListList(HttpResponse res) throws TwitterException {
return UserListJSONImpl.createUserListList(res, conf);
}
@Override
public DirectMessage createDirectMessage(HttpResponse res) throws TwitterException {
return new DirectMessageJSONImpl(res, conf);
}
@Override
public ResponseList createDirectMessageList(HttpResponse res) throws TwitterException {
return DirectMessageJSONImpl.createDirectMessageList(res, conf);
}
@Override
public AccountSettings createAccountSettings(HttpResponse res) throws TwitterException {
return new AccountSettingsJSONImpl(res, conf);
}
@Override
public ResponseList createLocationList(HttpResponse res) throws TwitterException {
return LocationJSONImpl.createLocationList(res, conf);
}
@Override
public Place createPlace(HttpResponse res) throws TwitterException {
return new PlaceJSONImpl(res, conf);
}
@Override
public ResponseList createPlaceList(HttpResponse res) throws TwitterException {
try {
return PlaceJSONImpl.createPlaceList(res, conf);
} catch (TwitterException te) {
if (te.getStatusCode() == 404) {
return new ResponseListImpl(0, null);
} else {
throw te;
}
}
}
@Override
public SimilarPlaces createSimilarPlaces(HttpResponse res) throws TwitterException {
return SimilarPlacesImpl.createSimilarPlaces(res, conf);
}
@Override
public RelatedResults createRelatedResults(HttpResponse res) throws TwitterException {
return new RelatedResultsJSONImpl(res, conf);
}
@Override
public TwitterAPIConfiguration createTwitterAPIConfiguration(HttpResponse res) throws TwitterException {
return new TwitterAPIConfigurationJSONImpl(res, conf);
}
@Override
public ResponseList createEmptyResponseList() {
return new ResponseListImpl(0, null);
}
/**
* static factory method for twitter-text-java
*
* @return hashtag entity
* @since Twitter4J 2.2.6
*/
public static HashtagEntity createHashtagEntity(int start, int end, String text) {
return new HashtagEntityJSONImpl(start, end, text);
}
/**
* static factory method for twitter-text-java
*
* @return user mention entity
* @since Twitter4J 2.2.6
*/
public static UserMentionEntity createUserMentionEntity(int start, int end, String name, String screenName, long id) {
return new UserMentionEntityJSONImpl(start, end, name, screenName, id);
}
/**
* static factory method for twitter-text-java
*
* @return url entity
* @since Twitter4J 2.2.6
*/
public static URLEntity createUrlEntity(int start, int end, String url, String expandedURL, String displayURL) {
return new URLEntityJSONImpl(start, end, url, expandedURL, displayURL);
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof z_T4JInternalJSONImplFactory)) {
return false;
}
z_T4JInternalJSONImplFactory that = (z_T4JInternalJSONImplFactory) o;
if (conf != null ? !conf.equals(that.conf) : that.conf != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
return conf != null ? conf.hashCode() : 0;
}
@Override
public String toString() {
return "JSONImplFactory{" +
"conf=" + conf +
'}';
}
}