/** * @param id id of an entity to be loaded * @return this instance for chaining */ public LoadContext<E> setId(Object id) { this.id = id instanceof Entity ? ((Entity) id).getId() : id; // for compatibility with legacy code relying on implicit conversions return this; }
/** * @return an item Id * @deprecated use {@link #getItem()} instead */ @Deprecated public Object getItemId() { return item.getId(); }
@SuppressWarnings("unchecked") @Nullable @Override public <T extends Entity> T reload(T entity, String... viewNames) { Preconditions.checkNotNullArgument(entity, "entity is null"); if (entity.getId() instanceof IdProxy && ((IdProxy) entity.getId()).get() == null) { return null; } Entity resultEntity = find(entity.getClass(), entity.getId(), viewNames); return (T) resultEntity; }
@Override public K getIdByIndex(int index) { Collection<T> collection = getCollection(); if (CollectionUtils.isNotEmpty(collection)) { return Iterables.get(collection, index).getId(); } return null; }
@Nullable @Override public Object getEditedItemId() { E item = getEditedItem(); return item != null ? item.getId() : null; }
protected Object getEntityId(Entity entity) { Object entityId = entity.getId(); if (entityId instanceof IdProxy) { return ((IdProxy) entityId).get(); } else { return entityId; } }
@Override public Object lastItemId() { List<E> items = container.getItems(); return items.isEmpty() ? null : items.get(0).getId(); }
@Override public Object getItemId(E item) { Preconditions.checkNotNullArgument(item); return item.getId(); }
@Override public K nextItemId(K itemId) { if (itemId == null) return null; Collection<T> collection = getCollection(); if ((collection != null) && !collection.isEmpty() && !itemId.equals(lastItemId())) { List<T> list = new ArrayList<>(collection); T currentItem = getItem(itemId); return list.get(list.indexOf(currentItem) + 1).getId(); } return null; }
@SuppressWarnings("unchecked") @Override public boolean contains(Entity entity) { checkNotNullArgument(entity, "entity is null"); return find(entity.getClass(), entity.getId()) != null; }
protected void doSort() { @SuppressWarnings("unchecked") List<T> list = new ArrayList<>(data.values()); list.sort(createEntityComparator()); data.clear(); for (T t : list) { data.put(t.getId(), t); } }
@Nullable @Override public LockInfo lock(Entity entity) { Preconditions.checkNotNullArgument(entity, "entity is null"); MetaClass metaClass = metadata.getClassNN(entity.getClass()); MetaClass originalMetaClass = metadata.getExtendedEntities().getOriginalOrThisMetaClass(metaClass); return lock(originalMetaClass.getName(), entity.getId().toString()); }
@Override public void addItem(T item) { checkNotNullArgument(item, "item is null"); internalAddItem(item, () -> { data.put(item.getId(), item); }); }
protected void restoreEntity(Entity entity, String storeName) { EntityManager em = persistence.getEntityManager(storeName); Entity reloadedEntity = em.find(entity.getClass(), entity.getId()); if (reloadedEntity != null && ((SoftDelete) reloadedEntity).isDeleted()) { log.info("Restoring deleted entity " + entity); Date deleteTs = ((SoftDelete) reloadedEntity).getDeleteTs(); ((SoftDelete) reloadedEntity).setDeleteTs(null); em.merge(reloadedEntity); restoreDetails(reloadedEntity, deleteTs, storeName); } }
@Override public void afterCommit() { Object entityId = e.getId(); try (Transaction tx = persistence.createTransaction()) { enqueue(metaClass.getName(), entityId, FtsChangeType.UPDATE); tx.commit(); } } });
protected boolean referenceExists(String entityName, MetaProperty property) { String template = property.getRange().getCardinality().isMany() ? "select count(e) from %s e join e.%s c where c." + primaryKeyName + "= ?1" : "select count(e) from %s e where e.%s." + primaryKeyName + " = ?1"; String qstr = String.format(template, entityName, property.getName()); Query query = entityManager.createQuery(qstr); query.setParameter(1, entity.getId()); query.setMaxResults(1); Long count = (Long) query.getSingleResult(); return count > 0; }
protected void cascade(String entityName, MetaProperty property) { String template = property.getRange().getCardinality().isMany() ? "select e from %s e join e.%s c where c." + primaryKeyName + " = ?1" : "select e from %s e where e.%s." + primaryKeyName + " = ?1"; String qstr = String.format(template, entityName, property.getName()); Query query = entityManager.createQuery(qstr); query.setParameter(1, entity.getId()); List<Entity> list = query.getResultList(); for (Entity e : list) { entityManager.remove(e); } }
@Override public void addItemFirst(T item) { checkNotNullArgument(item, "item is null"); internalAddItem(item, () -> { LinkedMap tmpMap = data.clone(); data.clear(); data.put(item.getId(), item); data.putAll(tmpMap); }); }
@Override public void setItem(Entity item) { Entity newItem = valuesFormatsDs.getDataSupplier().newInstance(valuesFormatsDs.getMetaClass()); metadata.getTools().copy(item, newItem); ((ReportValueFormat) newItem).setId((UUID) item.getId()); super.setItem(newItem); } }