protected boolean needToApplyByPredicate(LoadContext context, Predicate<MetaClass> hasConstraints) { if (context.getView() == null) { MetaClass metaClass = metadata.getSession().getClassNN(context.getMetaClass()); return hasConstraints.test(metaClass); } Session session = metadata.getSession(); for (Class aClass : collectEntityClasses(context.getView(), new HashSet<>())) { if (hasConstraints.test(session.getClassNN(aClass))) { return true; } } return false; }
@Nullable @Override public <E extends Entity> E load(LoadContext<E> context) { MetaClass metaClass = metadata.getClassNN(context.getMetaClass()); DataStore storage = storeFactory.get(getStoreName(metaClass)); E entity = storage.load(context); if (entity != null) readCrossDataStoreReferences(Collections.singletonList(entity), context.getView(), metaClass, context.isJoinTransaction()); return entity; }
if (BooleanUtils.isTrue(returnNulls)) serializationOptions.add(EntitySerializationOption.SERIALIZE_NULLS); String json = entitySerializationAPI.toJson(entities, ctx.getView(), serializationOptions.toArray(new EntitySerializationOption[0])); json = restControllerUtils.transformJsonIfRequired(entityName, version, JsonTransformationDirection.TO_VERSION, json); return json;
String result = converter.process(entities, metaClass, loadCtx.getView()); writeResponse(response, result, converter.getMimeType()); } catch (Throwable e) {
public String loadEntity(String entityName, String entityId, @Nullable String viewName, @Nullable Boolean returnNulls, @Nullable Boolean dynamicAttributes, @Nullable String modelVersion) { entityName = restControllerUtils.transformEntityNameIfRequired(entityName, modelVersion, JsonTransformationDirection.FROM_VERSION); MetaClass metaClass = restControllerUtils.getMetaClass(entityName); checkCanReadEntity(metaClass); LoadContext<Entity> ctx = new LoadContext<>(metaClass); Object id = getIdFromString(entityId, metaClass); ctx.setId(id); if (!Strings.isNullOrEmpty(viewName)) { View view = restControllerUtils.getView(metaClass, viewName); ctx.setView(view); } ctx.setLoadDynamicAttributes(BooleanUtils.isTrue(dynamicAttributes)); Entity entity = dataManager.load(ctx); checkEntityIsNotNull(entityName, entityId, entity); List<EntitySerializationOption> serializationOptions = new ArrayList<>(); serializationOptions.add(EntitySerializationOption.SERIALIZE_INSTANCE_NAME); if (BooleanUtils.isTrue(returnNulls)) serializationOptions.add(EntitySerializationOption.SERIALIZE_NULLS); restControllerUtils.applyAttributesSecurity(entity); String json = entitySerializationAPI.toJson(entity, ctx.getView(), serializationOptions.toArray(new EntitySerializationOption[0])); json = restControllerUtils.transformJsonIfRequired(entityName, modelVersion, JsonTransformationDirection.TO_VERSION, json); return json; }
protected View createRestrictedView(LoadContext context) { View view = context.getView() != null ? context.getView() : viewRepository.getView(metadata.getClassNN(context.getMetaClass()), View.LOCAL); View copy = View.copy(isAuthorizationRequired(context) ? attributeSecurity.createRestrictedView(view) : view); if (context.isLoadPartialEntities() && !needToApplyInMemoryReadConstraints(context) && !needToFilterByInMemoryReadConstraints(context) && !needToApplyAttributeAccess(context)) { copy.setLoadPartialEntities(true); } return copy; }
@Override @SuppressWarnings("unchecked") public <E extends Entity> List<E> loadList(LoadContext<E> context) { MetaClass metaClass = metadata.getClassNN(context.getMetaClass()); DataStore storage = storeFactory.get(getStoreName(metaClass)); List<E> entities = storage.loadList(context); readCrossDataStoreReferences(entities, context.getView(), metaClass, context.isJoinTransaction()); return entities; }
} else { Converter converter = conversionFactory.getConverter(type); String result = converter.process(entity, metaClass, loadCtx.getView()); writeResponse(response, result, converter.getMimeType());
String result = converter.process(entities, metaClass, loadCtx.getView()); writeResponse(response, result, converter.getMimeType()); } catch (RowLevelSecurityException e) {
public <E extends Entity> List<E> loadList(LoadContext<E> context) { if (log.isDebugEnabled()) log.debug("loadList: metaClass=" + context.getMetaClass() + ", view=" + context.getView() + (context.getPrevQueries().isEmpty() ? "" : ", from selected") + ", query=" + (context.getQuery() == null ? null : RdbmsQueryBuilder.printQuery(context.getQuery().getQueryString())) collectEntityClassesWithDynamicAttributes(context.getView()));
protected void printAll() { MetaClass metaClass; LoadContext loadContext; if (listComponent.getItems() instanceof ContainerDataUnit) { ContainerDataUnit unit = (ContainerDataUnit) listComponent.getItems(); CollectionContainer container = unit.getContainer(); CollectionLoader loader = (CollectionLoader) ((HasLoader) unit.getContainer()).getLoader(); metaClass = container.getEntityMetaClass(); loadContext = loader.createLoadContext(); } else { CollectionDatasource ds = listComponent.getDatasource(); metaClass = ds.getMetaClass(); loadContext = ds.getCompiledLoadContext(); } ParameterPrototype parameterPrototype = new ParameterPrototype(metaClass.getName()); parameterPrototype.setMetaClassName(metaClass.getName()); LoadContext.Query query = loadContext.getQuery(); parameterPrototype.setQueryString(query.getQueryString()); parameterPrototype.setQueryParams(query.getParameters()); parameterPrototype.setViewName(loadContext.getView().getName()); Window window = ComponentsHelper.getWindowNN(listComponent); openRunReportScreen(window.getFrameOwner(), parameterPrototype, metaClass); } }