package org.ohmage.db.test; import org.ohmage.db.DbContract.Campaigns; import org.ohmage.db.DbContract.Responses; import org.ohmage.db.DbContract.Surveys; import org.ohmage.db.Models.Response; import org.ohmage.service.SurveyGeotagService; public class ResponseCursor extends MockArrayCursor<Response> { public static final String MOCK_CAMPAIGN_URN = "urn:mock:campaign"; private static final int COLUMN_ID = 0; private static final int COLUMN_LOCATION_STATUS = 1; private static final int COLUMN_SURVEY_LAUNCH_CONTEXT = 2; private static final int COLUMN_RESPONSE_JSON = 3; private static final int COLUMN_CAMPAIGN_URN = 4; private static final int COLUMN_TIMEZONE = 5; private static final int COLUMN_SURVEY_ID = 6; private static final int COLUMN_TIME = 7; private static final int COLUMN_SURVEY_TITLE = 8; private static final int COLUMN_CAMPAIGN_NAME = 9; public ResponseCursor(String[] projection, Response... responses) { super(projection, responses); } @Override protected int getLocalColumnIndex(String columnName) { if (Responses._ID.equals(columnName)) return COLUMN_ID; else if (Responses.RESPONSE_LOCATION_STATUS.equals(columnName)) return COLUMN_LOCATION_STATUS; else if (Responses.RESPONSE_SURVEY_LAUNCH_CONTEXT.equals(columnName)) return COLUMN_SURVEY_LAUNCH_CONTEXT; else if (Responses.RESPONSE_JSON.equals(columnName)) return COLUMN_RESPONSE_JSON; else if (Responses.CAMPAIGN_URN.equals(columnName)) return COLUMN_CAMPAIGN_URN; else if (Responses.RESPONSE_TIMEZONE.equals(columnName)) return COLUMN_TIMEZONE; else if (Responses.SURVEY_ID.equals(columnName)) return COLUMN_SURVEY_ID; else if (Responses.RESPONSE_TIME.equals(columnName)) return COLUMN_TIME; else if (Surveys.SURVEY_TITLE.equals(columnName)) return COLUMN_SURVEY_TITLE; else if (Campaigns.CAMPAIGN_NAME.equals(columnName)) return COLUMN_CAMPAIGN_NAME; return COLUMN_IGNORE; } @Override protected double getDoubleValid(int columnIndex) { return 0.0; } @Override protected String getStringValid(int columnIndex) { switch (columnIndex) { case COLUMN_LOCATION_STATUS: return getObject().locationStatus; case COLUMN_SURVEY_LAUNCH_CONTEXT: return getObject().surveyLaunchContext; case COLUMN_RESPONSE_JSON: return getObject().response; case COLUMN_CAMPAIGN_URN: return getObject().campaignUrn; case COLUMN_TIMEZONE: return getObject().timezone; case COLUMN_SURVEY_ID: return getObject().surveyId; default: return getStringDefault(columnIndex); } } @Override protected String getStringDefault(int columnIndex) { switch (columnIndex) { case COLUMN_LOCATION_STATUS: return SurveyGeotagService.LOCATION_UNAVAILABLE; case COLUMN_SURVEY_LAUNCH_CONTEXT: return "{}"; case COLUMN_RESPONSE_JSON: return "[]"; case COLUMN_CAMPAIGN_URN: return MOCK_CAMPAIGN_URN; case COLUMN_ID: return "1"; case COLUMN_SURVEY_TITLE: return "Survey Title"; case COLUMN_CAMPAIGN_NAME: return "Campaign Name"; default: return ""; } } @Override protected float getFloatValid(int columnIndex) { return 0.0f; } @Override protected long getLongValid(int columnIndex) { switch (columnIndex) { case COLUMN_TIME: return getObject().time; default: return 0; } } @Override protected int getIntValid(int columnIndex) { // TODO Auto-generated method stub return 0; } }