/** * Helper function for constructors. * * @param parameterTableRelation * @param fsc * @param cc * @return * @throws ODKDatastoreException */ protected static final <T extends CommonFieldsBase> T retrieveEntity( T parameterTableRelation, FormServiceCursor fsc, CallingContext cc) throws ODKDatastoreException { Datastore ds = cc.getDatastore(); User user = cc.getCurrentUser(); return ds.getEntity(parameterTableRelation, fsc.getAuriService(), user); }
@Override public void setUploadCompleted(CallingContext cc) throws ODKEntityPersistException, ODKOverQuotaException { fsc.setUploadCompleted(true); if (fsc.getExternalServicePublicationOption() == ExternalServicePublicationOption.UPLOAD_ONLY) { fsc.setOperationalStatus(OperationalStatus.COMPLETED); } Datastore ds = cc.getDatastore(); User user = cc.getCurrentUser(); ds.putEntity(fsc, user); }
static final synchronized FormSettingsTable assertRelation(CallingContext cc) throws ODKDatastoreException { if (relation == null) { FormSettingsTable relationPrototype; Datastore ds = cc.getDatastore(); User user = cc.getUserService().getDaemonAccountUser(); relationPrototype = new FormSettingsTable(ds.getDefaultSchemaName()); ds.assertRelation(relationPrototype, user); // may throw exception... // at this point, the prototype has become fully populated relation = relationPrototype; // set static variable only upon success... } return relation; }
@Override public void persist(CallingContext cc) throws ODKEntityPersistException, ODKOverQuotaException { Datastore ds = cc.getDatastore(); User user = cc.getCurrentUser(); CommonFieldsBase serviceEntity = retrieveObjectEntity(); List<? extends CommonFieldsBase> repeats = retrieveRepeatElementEntities(); if (repeats != null) { ds.putEntities(repeats, user); } ds.putEntity(serviceEntity, user); ds.putEntity(fsc, user); }
@Override public void delete(CallingContext cc) throws ODKDatastoreException { CommonFieldsBase serviceEntity = retrieveObjectEntity(); List<? extends CommonFieldsBase> repeats = retrieveRepeatElementEntities(); Datastore ds = cc.getDatastore(); User user = cc.getCurrentUser(); if (repeats != null) { List<EntityKey> keys = new ArrayList<EntityKey>(); for (CommonFieldsBase repeat : repeats) { keys.add(repeat.getEntityKey()); } ds.deleteEntities(keys, user); repeats.clear(); } ds.deleteEntity(serviceEntity.getEntityKey(), user); ds.deleteEntity(fsc.getEntityKey(), user); }
/** * Helper function for constructors. * * @param parameterTableRelation * @param cc * @return * @throws ODKDatastoreException */ protected static final <T extends CommonFieldsBase> T newEntity( T parameterTableRelation, CallingContext cc) throws ODKDatastoreException { Datastore ds = cc.getDatastore(); User user = cc.getCurrentUser(); return ds.createEntityUsingRelation(parameterTableRelation, user); }