package com.nuscomputing.ivle.providers; import java.util.HashMap; import java.util.Map; import com.nuscomputing.ivle.DatabaseHelper; import android.net.Uri; /** * The contract between the announcements provider and applications. * Contains definitions for supported URIs and data columns. * @author yjwong */ public class AnnouncementsContract extends IVLEContract { // {{{ properties /** The content:// style URL for the top level authority */ public static final Uri CONTENT_URI = Uri.parse("content://com.nuscomputing.ivle.provider/announcements"); /** The database table backing this type */ public static final String TABLE = DatabaseHelper.ANNOUNCEMENTS_TABLE_NAME; /** Prefixes for foreign keys */ public static final String CREATOR_PREFIX = "creator_"; public static final String MODULE_PREFIX = "module_"; /** The creator ID */ public static final String CREATOR_ID = "creator_id"; /** Other columns */ public static final String TITLE = "title"; public static final String DESCRIPTION = "description"; public static final String CREATED_DATE = "createdDate"; public static final String EXPIRY_DATE = "expiryDate"; public static final String URL = "url"; public static final String IS_READ = "isRead"; /** Internal columns that are not in the API */ public static final String _DESCRIPTION_NOHTML = "descriptionNoHtml"; // }}} // {{{ methods @Override public Uri getContentUri() { return AnnouncementsContract.CONTENT_URI; } @Override public String getTableName() { return AnnouncementsContract.TABLE; } @Override public String getColumnNameModuleId() { return IVLEContract.MODULE_ID; } @Override public Map<String, String> getJoinProjectionMap(String prefix) { Map<String, String> map = new HashMap<String, String>(); map.put(prefix + AnnouncementsContract.IVLE_ID, TABLE + "." + AnnouncementsContract.IVLE_ID); map.put(prefix + AnnouncementsContract.MODULE_ID, TABLE + "." + AnnouncementsContract.MODULE_ID); map.put(prefix + AnnouncementsContract.ACCOUNT, TABLE + "." + AnnouncementsContract.ACCOUNT); map.put(prefix + AnnouncementsContract.CREATOR_ID, TABLE + "." + AnnouncementsContract.CREATOR_ID); map.put(prefix + AnnouncementsContract.TITLE, TABLE + "." + AnnouncementsContract.TITLE); map.put(prefix + AnnouncementsContract.DESCRIPTION, TABLE + "." + AnnouncementsContract.DESCRIPTION); map.put(prefix + AnnouncementsContract._DESCRIPTION_NOHTML, TABLE + "." + AnnouncementsContract._DESCRIPTION_NOHTML); map.put(prefix + AnnouncementsContract.CREATED_DATE, TABLE + "." + AnnouncementsContract.CREATED_DATE); map.put(prefix + AnnouncementsContract.EXPIRY_DATE, TABLE + "." + AnnouncementsContract.EXPIRY_DATE); map.put(prefix + AnnouncementsContract.URL, TABLE + "." + AnnouncementsContract.URL); map.put(prefix + AnnouncementsContract.IS_READ, TABLE + "." + AnnouncementsContract.IS_READ); return map; } // }}} }