@Override public RelationQueryExecutor newRelationQueryExecutor(RelationExecutorContext context) { return new DefaultRelationQueryExecutor(handleContext(context), relationQueryExtension); } }
@Override public ModelQueryExecutor newQueryExecutor(ModelExecutorContext context) { return new DefaultModelQueryExecutor(handleContext(context), queryExtension); }
/** * Update partial properties of model. */ protected ApiResponse updatePartial(Object id, Partial<T> partial) { ModelUpdateExecutor executor = mef.newUpdateExecutor(mec); UpdateOneResult result = executor.partialUpdateOne(id, partial); if (result.affectedRows > 0) { return ApiResponse.NO_CONTENT; } else { return ApiResponse.NOT_FOUND; } }
@Init private void init() { this.createExtension = new ModelCreateExtension(createHandler, createInterceptors); this.updateExtension = new ModelUpdateExtension(updateHandler, updateInterceptors, replaceInterceptors); this.queryExtension = new ModelQueryExtension(queryHandler, queryInterceptors); this.deleteExtension = new ModelDeleteExtension(deleteHandler, deleteInterceptors); this.relationQueryExtension = new RelationQueryExtension(relationQueryInterceptors); }
public ModelQueryExecutor newQueryExecutor() { SimpleModelExecutorContext c = new SimpleModelExecutorContext(runtimeApi, am, dao, em); return mef.newQueryExecutor(c); } }
/** * Gets the record of the specified id. */ protected ApiResponse get(Object id, QueryOptionsBase options) { ModelQueryExecutor executor = mef.newQueryExecutor(mec); QueryOneResult result = executor.queryOne(id, options); return ApiResponse.of(result.getRecord()); }
@Override public Object apply(ActionParams params) { MApiModel am = am(); ModelExecutorContext context = new SimpleModelExecutorContext(api, dao, am, em, params); ModelQueryExecutor executor = newQueryExecutor(context); CountOptions options = getWithoutId(params, 0); QueryListResult result = executor.count(options, null); return ApiResponse.of(result.getCount()); }
/** * Creates a new record of model and returns the id. * * @param request the request bean contains properties of model. * @param id the id of model, pass null if use auto generated id. * @return the id of new record. */ protected Object createRecordAndReturnId(Object request, Object id, Map<String, Object> extraProperties) { ModelCreateExecutor executor = mef.newCreateExecutor(mec); return executor.createOne(request, id, extraProperties).id; }
/** * Deletes a record. */ protected ApiResponse delete(Object id, DeleteOptions options) { ModelDeleteExecutor executor = mef.newDeleteExecutor(mec); if(executor.deleteOne(id, options).success) { return ApiResponse.NO_CONTENT; }else{ return ApiResponse.NOT_FOUND; } } }
/** * Query the records of model. */ default QueryListResult queryList(QueryOptions options) { return queryList(options, null); }
@Override public ModelDeleteExecutor newDeleteExecutor(ModelExecutorContext context) { return new DefaultModelDeleteExecutor(handleContext(context), deleteExtension); }
@Override public Object processCreationParams(ModelExecutionContext context, Object params) { for(ModelCreateInterceptor interceptor : interceptors) { Object v = interceptor.processCreationParams(context, params); if(null != v) { return v; } } return null; }
@Override public boolean handleCreationPropertyNotFound(ModelExecutionContext context, String name, Object value, Set<String> removes) { for(ModelCreateInterceptor interceptor : interceptors) { if(interceptor.handleCreationPropertyNotFound(context, name, value, removes)) { return true; } } return false; }
@Override public boolean handleCreationPropertyReadonly(ModelExecutionContext context, String name, Object value, Set<String> removes) { for(ModelCreateInterceptor interceptor : interceptors) { if(interceptor.handleCreationPropertyReadonly(context, name, value, removes)) { return true; } } return false; }
@Override public boolean preCreateRecord(ModelExecutionContext context, Map<String, Object> record) { for(ModelCreateInterceptor interceptor : interceptors) { if(interceptor.preCreateRecord(context, record)) { return true; } } return false; }
@Override public boolean preQueryOne(ModelExecutionContext context, Object id, CriteriaQuery query) { for(ModelQueryInterceptor interceptor : interceptors) { if(interceptor.preQueryOne(context, id, query)) { return true; } } return false; }
@Override public boolean postRelateQueryOne(RelationExecutionContext context, Object relatedId, Record record) { for(RelationQueryInterceptor interceptor : interceptors) { if(interceptor.postRelateQueryOne(context, relatedId, record)) { return true; } } return false; }
@Override public boolean processReplaceRecord(ModelExecutionContext context, Object id, Map<String, Object> record) { for(ModelReplaceInterceptor interceptor : replaceInterceptors) { if(interceptor.processReplaceRecord(context, id, record)) { return true; } } return false; }
@Override public boolean handleReplacePropertyNotFound(ModelExecutionContext context, String name, Object value, Set<String> removes) { for(ModelReplaceInterceptor interceptor : replaceInterceptors) { if(interceptor.handleReplacePropertyNotFound(context, name, value, removes)) { return true; } } return false; }
@Override public boolean processQueryOneOptions(ModelExecutionContext context, QueryOptionsBase options) { for(ModelQueryInterceptor interceptor : interceptors) { if(interceptor.processQueryOneOptions(context, options)) { return true; } } return false; }