package com.cattong.weibo; import java.io.File; import com.cattong.commons.LibException; import com.cattong.commons.LibResultCode; import com.cattong.commons.PagingSupport; import com.cattong.commons.http.auth.Authorization; import com.cattong.entity.Location; import com.cattong.weibo.api.AccountService; import com.cattong.weibo.api.BlockService; import com.cattong.weibo.api.CommentService; import com.cattong.weibo.api.CountService; import com.cattong.weibo.api.DirectMessageService; import com.cattong.weibo.api.FavoriteService; import com.cattong.weibo.api.FriendshipService; import com.cattong.weibo.api.GroupMembersService; import com.cattong.weibo.api.GroupService; import com.cattong.weibo.api.LocationService; import com.cattong.weibo.api.StatusService; import com.cattong.weibo.api.TimelineService; import com.cattong.weibo.api.UserService; import com.cattong.weibo.conf.ApiConfig; import com.cattong.weibo.conf.ApiConfigFactory; public abstract class Weibo extends PagingSupport implements java.io.Serializable, TimelineService, StatusService, UserService, DirectMessageService, FriendshipService, AccountService, FavoriteService, CommentService, CountService, BlockService, GroupService, GroupMembersService, LocationService { private static final long serialVersionUID = 2899023676683266230L; protected final ApiConfig conf; protected Authorization auth; public Weibo(Authorization auth) { this.auth = auth; this.conf = ApiConfigFactory.getApiConfig(auth); } public abstract String getScreenName() throws LibException; public abstract String getUserId() throws LibException; /** * tests if the instance is authenticated by Basic * * @return returns true if the instance is authenticated by Basic */ public final boolean isBasicAuthEnabled() { return auth.getAuthVersion() == Authorization.AUTH_VERSION_BASIC; } @Override public boolean equals(Object o) { if (o == null) { return false; } if (this == o) { return true; } if (!(o instanceof Weibo)) return false; Weibo that = (Weibo) o; if (!auth.equals(that.auth)) return false; return true; } @Override public int hashCode() { return auth != null ? auth.hashCode() : 0; } @Override public String toString() { return "MicroBlog{" + "auth=" + auth + '}'; } public void setAuthorization(Authorization auth) { this.auth = auth; } public Authorization getAuthorization() { return auth; } /** * 判断文件合法性 * * @param image * 将被上传的图片文件 * @throws LibException * @author cattong.com * @version 创建时间: 2011-7-28 15:54:36 */ public void checkFileValidity(File image) throws LibException { if (image == null) { throw new LibException(LibResultCode.E_PARAM_NULL); } if (!image.exists()) { throw new LibException(LibResultCode.FILE_NOT_FOUND); } if (!image.isFile()) { throw new LibException(LibResultCode.FILE_TYPE_INVALID); } } /** * 获取坐标。 */ @Override public Location getLocationByCoordinate(double latitude, double longitude) throws LibException { throw new LibException(LibResultCode.API_UNSUPPORTED); } }