@Override public String toString() { String state = ""; if (isNew(this)) state += "new,"; if (isManaged(this)) state += "managed,"; if (isDetached(this)) state += "detached,"; if (isRemoved(this)) state += "removed,"; if (state.length() > 0) state = state.substring(0, state.length() - 1); return getClass().getName() + "-" + getId() + " [" + state + "]"; } }
/** * Put query results into query cache for specified query {@code queryKey}. * Results are extracted as identifiers from {@code resultList} * * @param type - result entity type (metaClass name) * @param relatedTypes - query dependent types (metaClass names). It's a list of entity types used in query */ @SuppressWarnings("unchecked") public void putResultToCache(QueryKey queryKey, List resultList, String type, Set<String> relatedTypes) { QueryResult queryResult; if (resultList.size() > 0) { List idList = (List) resultList.stream() .filter(item -> item instanceof BaseGenericIdEntity) .map(item -> ((BaseGenericIdEntity) item).getId()) .collect(Collectors.toList()); queryResult = new QueryResult(idList, type, getDescendants(relatedTypes)); } else { queryResult = new QueryResult(Collections.emptyList(), type, getDescendants(relatedTypes)); } log.debug("Put results into cache for query: {}, relatedTypes: {}", queryKey.printDescription(), relatedTypes); queryCache.put(queryKey, queryResult); }
/** * Put query results into query cache for specified query {@code queryKey}. * Results are extracted as identifiers from entity {@code result} * * @param type - result entity type (metaClass name) * @param relatedTypes - query dependent types (metaClass names). It's a list of entity types used in query * @param exception - store exception in the query cache if {@link TypedQuery#getSingleResult()} throws exception */ @SuppressWarnings("unchecked") public <T> void putResultToCache(QueryKey queryKey, T result, String type, Set<String> relatedTypes, RuntimeException exception) { QueryResult queryResult; if (exception == null) { queryResult = new QueryResult(Collections.singletonList(((BaseGenericIdEntity) result).getId()), type, relatedTypes); } else { queryResult = new QueryResult(Collections.emptyList(), type, relatedTypes, exception); } log.debug("Put results into cache for query: {}, relatedTypes: {}", queryKey.printDescription(), relatedTypes); queryCache.put(queryKey, queryResult); }
idToEntityMap.put(entity.getId(), entity);
/** * Reload dynamic attributes on the entity */ @SuppressWarnings("unchecked") public void reloadDynamicAttributes(BaseGenericIdEntity entity) { MetaClass metaClass = entity.getMetaClass(); View view = new View(metaClass.getJavaClass(), false) .addProperty(metadata.getTools().getPrimaryKeyName(metaClass)); LoadContext loadContext = new LoadContext(metaClass) .setView(view) .setLoadDynamicAttributes(true) .setId(entity.getId()); BaseGenericIdEntity reloadedEntity = (BaseGenericIdEntity) dataManager.load(loadContext); if (reloadedEntity != null) { entity.setDynamicAttributes(reloadedEntity.getDynamicAttributes()); } } }