com.parse.ParseObject Java Examples

The following examples show how to use com.parse.ParseObject. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: PerfTestParse.java    From android-database-performance with Apache License 2.0 6 votes vote down vote up
@Override
protected void doIndexedStringEntityQueries() throws Exception {
    // According to the documentation, Parse does NOT support defining indexes manually
    // or for the local datastore.
    // We still are going to determine query performance WITHOUT AN INDEX.

    // set up parse inside of test
    // setting it up in setUp() breaks Parse, as it keeps its init state between tests
    // in hidden ParsePlugins
    ParseObject.registerSubclass(IndexedStringEntity.class);
    setupParse();

    for (int i = 0; i < RUNS; i++) {
        log("----Run " + (i + 1) + " of " + RUNS);
        indexedStringEntityQueriesRun(getBatchSize());
    }
}
 
Example #2
Source File: PerfTestParse.java    From android-database-performance with Apache License 2.0 6 votes vote down vote up
@Override
protected void doOneByOneCrudRun(int count) throws Exception {
    List<ParseObject> list = new ArrayList<>(count);
    for (int i = 0; i < count; i++) {
        list.add(createEntity(i));
    }

    startClock();
    for (int i = 0; i < count; i++) {
        list.get(i).pin();
    }
    stopClock(Benchmark.Type.ONE_BY_ONE_CREATE);

    startClock();
    for (int i = 0; i < count; i++) {
        list.get(i).pin();
    }
    stopClock(Benchmark.Type.ONE_BY_ONE_UPDATE);

    deleteAll();
}
 
Example #3
Source File: LikeUserCall.java    From protohipster with Apache License 2.0 6 votes vote down vote up
@Override
public void call() {
    ParseQuery<ParseObject> query = ParseQuery.getQuery(ParseLikeTableDefinitions.PARSE_LIKE_TABLE);
    query.whereEqualTo(ParseLikeTableDefinitions.PARSE_LIKE_USER_ID, userId);

    query.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> parseLikes, ParseException e) {
            if (e == null) {
                if(parseLikes.size() > 0){
                    ParseObject likeObject = parseLikes.get(0);

                    likeObject.increment(ParseLikeTableDefinitions.PARSE_LIKE_NUM_LIKES);
                    likeObject.saveInBackground();
                }

                responseCallback.complete(userId);

            } else {
                LoggerProvider.getLogger().d(LOGTAG, "Error retrying info from parse");
            }
        }

    });
}
 
Example #4
Source File: SyncEntity.java    From DataSync with Apache License 2.0 6 votes vote down vote up
public static <T extends SyncEntity> ParseObject toParseObject(T entity) {
    try {
        Class entityClass = entity.getClass();
        ParseClass a = (ParseClass) entityClass.getAnnotation(ParseClass.class);
        String parseClassName = entityClass.getSimpleName();

        if (a.name() != null && !a.name().isEmpty()) {
            parseClassName = a.name();
        }

        ParseObject parseObject = ParseObject.create(parseClassName);
        toParseObject(entity, parseObject);

        return parseObject;

    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
}
 
Example #5
Source File: ParseObservable.java    From RxParse with Apache License 2.0 6 votes vote down vote up
/**
 *  Limit 10000 by skip
 */
@NonNull
@CheckReturnValue
public static <R extends ParseObject> Observable<R> all(@NonNull final ParseQuery<R> query, int count) {
    final int limit = 1000; // limit limitation
    query.setSkip(0);
    query.setLimit(limit);
    Observable<R> find = find(query);
    for (int i = limit; i < count; i+= limit) {
        if (i >= 10000) break; // skip limitation
        query.setSkip(i);
        query.setLimit(limit);
        find.concatWith(find(query));
    }
    return find.distinct(o -> o.getObjectId());
}
 
Example #6
Source File: GetLikesCall.java    From protohipster with Apache License 2.0 5 votes vote down vote up
@Override
public void call() {
    ParseQuery<ParseObject> query = ParseQuery.getQuery(ParseLikeTableDefinitions.PARSE_LIKE_TABLE);
    query.whereContainedIn(ParseLikeTableDefinitions.PARSE_LIKE_USER_ID, userIds);

    query.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> parseLikes, ParseException e) {
            if (e == null) {
                GetLikesResponse response = new GetLikesResponse();

                for (ParseObject likeObject : parseLikes) {
                    String userId = likeObject.getString(ParseLikeTableDefinitions.PARSE_LIKE_USER_ID);
                    int numLikes = likeObject.getInt(ParseLikeTableDefinitions.PARSE_LIKE_NUM_LIKES);

                    response.add(userId, numLikes);
                }

                responseCallback.complete(response);

            } else {
                LoggerProvider.getLogger().d(LOGTAG, "Error retrying info from parse");
            }
        }

    });
}
 
Example #7
Source File: OBAnalyticsManagerOnline.java    From GLEXP-Team-onebillion with Apache License 2.0 5 votes vote down vote up
private void logEvent(final String eventName, Map<String, Object> properties)
{
    if (!OBConfigManager.sharedManager.isAnalyticsEnabled()) return;
    //
    MainActivity.log("OBAnalyticsManagerOnline.logEvent: " + eventName + " " + properties.toString());
    //
    ParseObject parseObject = new ParseObject(eventName);
    for (String key : properties.keySet())
    {
        parseObject.put(key, properties.get(key));
    }
    //
    parseObject.put(OBAnalytics.Params.DEVICE_UUID, OBSystemsManager.sharedManager.device_getUUID());
    parseObject.saveEventually(new SaveCallback()
    {
        @Override
        public void done (ParseException e)
        {
            if (e != null)
            {
                MainActivity.log("OBAnalyticsManagerOnline.logEvent.event save failed");
                e.printStackTrace();
            }
        }
    });
    //
    long currentTime = System.currentTimeMillis();
    // TODO: move the time frame for uploads to the config (1hour)
    if (currentTime - lastDataUploadTimestamp > 1000 * 60 * 60 * 1)
    {
        uploadData();
    }
}
 
Example #8
Source File: WebsiteListFragment.java    From Gazetti_Newspaper_Reader with MIT License 5 votes vote down vote up
private void getOldListItems(Date lastObjectCreatedAtDate) {

        ParseQuery<ParseObject> queryGetOldItems = ParseQuery.getQuery(dbToSearch);
        queryGetOldItems.whereEqualTo("newspaper_id", npIdString);
        queryGetOldItems.whereEqualTo("cat_id", catIdString);
        queryGetOldItems.whereLessThan("createdAt", lastObjectCreatedAtDate);
        queryGetOldItems.setLimit(20);
        queryGetOldItems.orderByDescending("createdAt");

        queryGetOldItems.findInBackground(new FindCallback<ParseObject>() {
            @Override
            public void done(List<ParseObject> articleObjectList, ParseException exception) {
                // Log.d(TAG, "Old Items articleObjectList " +
                // articleObjectList.size());
                if(exception == null){
                    retainedList.addAll(articleObjectList);
                    newsAdapter.notifyDataSetChanged();

                    // Log.d(TAG, "articleObjectList Retained " +
                    // retainedList.size());

                    mListView.removeFooterView(footerOnList);
                    mListViewContainer.setRefreshing(false);
                    flag_loading_old_data = false;
                } else {
                    Crashlytics.log("Wrong while fetching - " + exception.getMessage());
                    headerTextView.setText("Something went wrong!");
                }
            }

        });

    }
 
Example #9
Source File: NewsAdapter.java    From Gazetti_Newspaper_Reader with MIT License 5 votes vote down vote up
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        LayoutInflater inflater = ctx.getLayoutInflater();
        convertView = inflater.inflate(R.layout.headline_list_row, parent, false);

        holder = new ViewHolder();
        holder.textViewItem = (TextView) convertView.findViewById(R.id.headline);
        convertView.setTag(holder);

    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    ParseObject object = articleObjectList.get(position);
    // Add the title view
    holder.textViewItem.setText(object.getString("title"));

    // get PubDate
    Date createdAtDate = object.getCreatedAt();
    long createdAtDateInMillis = createdAtDate.getTime();
    //Log.d(TAG, "createdAtDateInMillis " + createdAtDateInMillis);

    String diff = getTimeAgo(createdAtDateInMillis);
    //Log.d(TAG, "diff " + diff);

    // Add title, link to Map
    linkMap.put(object.getString("title"), object.getString("link"));
    pubDateMap.put(object.getString("title"), diff);
    //Log.d(TAG, "Added " + pubDateMap.get(object.getString("title")));

    // PubDate

    return convertView;

}
 
Example #10
Source File: ParseTools.java    From DataSync with Apache License 2.0 5 votes vote down vote up
public static <T extends ParseObject> List<T> findAllParseObjects(ParseQuery<T> query) throws ParseException {
    List <T> result = new ArrayList<T>();
    query.setLimit(DEFAULT_PARSE_QUERY_LIMIT);
    List<T> chunk = null;
    do {
        chunk = query.find();
        result.addAll(chunk);
        query.setSkip(query.getSkip() + query.getLimit());
    } while (chunk.size() == query.getLimit());
    return result;
}
 
Example #11
Source File: ParseTools.java    From DataSync with Apache License 2.0 5 votes vote down vote up
public static <T extends ParseObject> Task<List<T>> findAllParseObjectsAsync(final ParseQuery<T> query) {
    return Task.callInBackground(new Callable<List<T>>() {
        @Override
        public List<T> call() throws Exception {
            return findAllParseObjects(query);
        }
    });
}
 
Example #12
Source File: SyncEntity.java    From DataSync with Apache License 2.0 5 votes vote down vote up
public static <T extends SyncEntity> T fromParseObject(ParseObject parseObject, Class<T> entityClass) {
    try {
        final T entity = entityClass.newInstance();
        fromParseObject(parseObject, entity);
        return entity;
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
}
 
Example #13
Source File: PerfTestParse.java    From android-database-performance with Apache License 2.0 5 votes vote down vote up
private void indexedStringEntityQueriesRun(int count) throws ParseException {
    // create entities
    List<IndexedStringEntity> entities = new ArrayList<>(count);
    String[] fixedRandomStrings = StringGenerator.createFixedRandomStrings(count);
    for (int i = 0; i < count; i++) {
        IndexedStringEntity entity = new IndexedStringEntity();
        entity.setIndexedString(fixedRandomStrings[i]);
        entities.add(entity);
    }
    log("Built entities.");

    // insert entities
    ParseObject.pinAll(entities);
    log("Inserted entities.");

    // query for entities by indexed string at random
    int[] randomIndices = StringGenerator.getFixedRandomIndices(QUERY_COUNT, count - 1);

    startClock();
    for (int i = 0; i < QUERY_COUNT; i++) {
        int nextIndex = randomIndices[i];

        ParseQuery<IndexedStringEntity> query = ParseQuery.getQuery(IndexedStringEntity.class);
        query.whereEqualTo(IndexedStringEntity.INDEXED_STRING, fixedRandomStrings[nextIndex]);
        //noinspection unused
        List<IndexedStringEntity> result = query.find();
    }
    stopClock(Benchmark.Type.QUERY_INDEXED);

    // delete all entities
    ParseObject.unpinAll();
    log("Deleted all entities.");
}
 
Example #14
Source File: PerfTestParse.java    From android-database-performance with Apache License 2.0 5 votes vote down vote up
@Override
protected void doBatchCrudRun(int count) throws Exception {
    List<ParseObject> list = new ArrayList<>(count);
    for (int i = 0; i < count; i++) {
        list.add(createEntity(i));
    }

    startClock();
    ParseObject.pinAll(list);
    stopClock(Benchmark.Type.BATCH_CREATE);

    startClock();
    ParseObject.pinAll(list);
    stopClock(Benchmark.Type.BATCH_UPDATE);

    startClock();
    List<ParseObject> reloaded = ParseQuery.getQuery("SimpleEntity")
            .fromLocalDatastore()
            .find();
    stopClock(Benchmark.Type.BATCH_READ);

    startClock();
    for (int i = 0; i < reloaded.size(); i++) {
        ParseObject entity = reloaded.get(i);
        entity.getBoolean("simpleBoolean");
        entity.getInt("simpleByte");
        entity.getInt("simpleShort");
        entity.getInt("simpleInt");
        entity.getLong("simpleLong");
        entity.getDouble("simpleFloat");
        entity.getDouble("simpleDouble");
        entity.getString("simpleString");
        entity.getBytes("simpleByteArray");
    }
    stopClock(Benchmark.Type.BATCH_ACCESS);

    startClock();
    deleteAll();
    stopClock(Benchmark.Type.BATCH_DELETE);
}
 
Example #15
Source File: PerfTestParse.java    From android-database-performance with Apache License 2.0 5 votes vote down vote up
private ParseObject createEntity(int nr) {
    ParseObject entity = new ParseObject("SimpleEntity");
    entity.put("simpleBoolean", true);
    entity.put("simpleByte", nr & 0xff);
    entity.put("simpleShort", nr & 0xffff);
    entity.put("simpleInt", nr);
    entity.put("simpleLong", Long.MAX_VALUE - nr);
    entity.put("simpleFloat", (float) (Math.PI * nr));
    entity.put("simpleDouble", Math.E * nr);
    entity.put("simpleString", "greenrobot greenDAO");
    byte[] bytes = { 42, -17, 23, 0, 127, -128 };
    entity.put("simpleByteArray", bytes);
    return entity;
}
 
Example #16
Source File: ParseObservable.java    From RxParse with Apache License 2.0 4 votes vote down vote up
@NonNull
public static <R extends ParseObject> Completable delete(@NonNull final R object) {
    return RxTask.completable(() -> object.deleteInBackground());
}
 
Example #17
Source File: PerfTestParse.java    From android-database-performance with Apache License 2.0 4 votes vote down vote up
private void deleteAll() throws ParseException {
    ParseObject.unpinAll();
}
 
Example #18
Source File: WebsiteListFragment.java    From Gazetti_Newspaper_Reader with MIT License 4 votes vote down vote up
private void getNewListItems() {

        mListViewContainer.setRefreshing(true);
        ParseQuery<ParseObject> queryGetNewItems = ParseQuery.getQuery(dbToSearch);
        queryGetNewItems.whereEqualTo("newspaper_id", npIdString);
        queryGetNewItems.whereEqualTo("cat_id", catIdString);
        queryGetNewItems.orderByDescending("createdAt");

        if (retainedList.size() > 0) {
            ParseObject topObject = retainedList.get(0);
            Date topObjectCreatedAt = topObject.getCreatedAt();
            queryGetNewItems.whereGreaterThan("createdAt", topObjectCreatedAt);
        }

        if (firstRun) {
            queryGetNewItems.setLimit(15);
        }
        //TODO: Try-catch with message
        queryGetNewItems.findInBackground(new FindCallback<ParseObject>() {
            @Override
            public void done(List<ParseObject> articleObjectList, ParseException exception) {

                if(exception == null){

                    retainedList.addAll(0, articleObjectList);

                    newsAdapter.notifyDataSetChanged();

                    dateLastUpdatedString = "Last Updated: "
                            + (DateUtils.formatDateTime(context, System.currentTimeMillis(), //
                            DateUtils.FORMAT_SHOW_TIME //
                                    | DateUtils.FORMAT_SHOW_WEEKDAY //
                                    | DateUtils.FORMAT_SHOW_DATE //
                                    | DateUtils.FORMAT_ABBREV_WEEKDAY //
                                    | DateUtils.FORMAT_NO_NOON //
                                    | DateUtils.FORMAT_NO_MIDNIGHT)); //
                    headerTextView.setText(dateLastUpdatedString);
                    mListViewContainer.setRefreshing(false);

                    if (mTwoPane) {
                        mListView.performItemClick(newsAdapter.getView(mActivatedPosition - 1, null, null),
                                mActivatedPosition, mActivatedPosition);

                    }
                    firstRun = false;
                } else {
                    Crashlytics.log("Wrong while fetching - " + exception.getMessage());
                    headerTextView.setText("Something went wrong!");
                }
            }

        });
    }
 
Example #19
Source File: NewsAdapter.java    From Gazetti_Newspaper_Reader with MIT License 4 votes vote down vote up
public NewsAdapter(Activity context, List<ParseObject> articleObjectList) {
    super(context, R.layout.headline_list_row, articleObjectList);
    ctx = context;
    this.articleObjectList = articleObjectList;

}
 
Example #20
Source File: ParseObservable.java    From RxParse with Apache License 2.0 4 votes vote down vote up
@NonNull
@CheckReturnValue
public static <R extends ParseObject> Observable<R> find(@NonNull final ParseQuery<R> query) {
    return RxTask.observable(() -> query.findInBackground())
            .flatMap(l -> Observable.fromIterable(l));
}
 
Example #21
Source File: ParseTools.java    From DataSync with Apache License 2.0 4 votes vote down vote up
public static <T extends ParseObject> List<T> findAllParseObjects(Class<T> clazz) throws ParseException {
    return findAllParseObjects(ParseQuery.getQuery(clazz));
}
 
Example #22
Source File: ParseObservable.java    From RxParse with Apache License 2.0 4 votes vote down vote up
@NonNull
@CheckReturnValue
public static <R extends ParseObject> Single<Integer> count(@NonNull final ParseQuery<R> query) {
    return RxTask.single(() -> query.countInBackground());

}
 
Example #23
Source File: ParseTools.java    From DataSync with Apache License 2.0 4 votes vote down vote up
public static <T extends ParseObject> Task<List<T>> findAllParseObjectsAsync(Class<T> clazz) {
    return findAllParseObjectsAsync(ParseQuery.getQuery(clazz));
}
 
Example #24
Source File: ParseObservable.java    From RxParse with Apache License 2.0 4 votes vote down vote up
@NonNull
public static <R extends ParseObject> Completable pin(@NonNull final R object) {
    return RxTask.completable(() -> object.pinInBackground());
}
 
Example #25
Source File: SyncEntity.java    From DataSync with Apache License 2.0 4 votes vote down vote up
public static <T extends SyncEntity, P extends ParseObject> void toParseObject(final T entity, final P parseObject) {
    try {
        Class entityClass = entity.getClass();

        // update objectId
        if (entity.getSyncId() != null) {
            Field objectIdField = ParseObject.class.getDeclaredField("objectId");
            objectIdField.setAccessible(true);
            objectIdField.set(parseObject, entity.getSyncId());
            objectIdField.setAccessible(false);
        }

        // update createdAt
        if (entity.getCreationDate() != null) {
            Field createdAtField = ParseObject.class.getDeclaredField("createdAt");
            createdAtField.setAccessible(true);
            createdAtField.set(parseObject, entity.getCreationDate());
            createdAtField.setAccessible(false);
        }

        // update updatedAt
        if (entity.getSyncDate() != null) {
            Field updatedAtField = ParseObject.class.getDeclaredField("updatedAt");
            updatedAtField.setAccessible(true);
            updatedAtField.set(parseObject, entity.getSyncDate());
            updatedAtField.setAccessible(false);
        }

        ReflectionUtils.doWithFields(
                entityClass,
                new ReflectionUtils.FieldCallback() {
                    @Override
                    public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException {
                        ParseField a = field.getAnnotation(ParseField.class);
                        if (a == null)
                            return;
                        String parseFieldName = field.getName();
                        if (a.name() != null && !a.name().isEmpty()) {
                            parseFieldName = a.name();
                        }

                        boolean accessible = field.isAccessible();
                        field.setAccessible(true);
                        Object value = field.get(entity);
                        if (value != null)
                            parseObject.put(parseFieldName, value);
                        else parseObject.remove(parseFieldName);
                        field.setAccessible(accessible);
                    }
                }
        );
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
}
 
Example #26
Source File: ParseObservable.java    From RxParse with Apache License 2.0 4 votes vote down vote up
@NonNull
public static <R extends ParseObject> Completable pin(@NonNull final List<R> objects) {
    return RxTask.completable(() -> ParseObject.pinAllInBackground(objects));
}
 
Example #27
Source File: ParseObservable.java    From RxParse with Apache License 2.0 4 votes vote down vote up
@NonNull
public static <R extends ParseObject> Completable delete(@NonNull final List<R> objects) {
    return RxTask.completable(() -> ParseObject.deleteAllInBackground(objects));
}
 
Example #28
Source File: ParseObservable.java    From RxParse with Apache License 2.0 4 votes vote down vote up
@NonNull
public static <R extends ParseObject> Completable pin(@NonNull final String name, @NonNull final List<R> objects) {
    return RxTask.completable(() -> ParseObject.pinAllInBackground(name, objects));
}
 
Example #29
Source File: ParseObservable.java    From RxParse with Apache License 2.0 4 votes vote down vote up
@NonNull
public static <R extends ParseObject> Completable save(@NonNull final R object) {
    return RxTask.completable(() -> object.saveInBackground());
}
 
Example #30
Source File: ParseObservable.java    From RxParse with Apache License 2.0 4 votes vote down vote up
@NonNull
public static <R extends ParseObject> Completable unpin(@NonNull final R object) {
    return RxTask.completable(() -> object.unpinInBackground());
}