/** * Returns detached entity metadata. */ public DetachedEntityMetadata detach() { return new DetachedEntityMetadata( new DetachedEntityId(id.getValue()), new DetachedEntityVersion(version.getValue()) ); }
/** * Check if given entity is attached. */ public static boolean isAttached(final Entity entity) { return EntityHelper.metadata(entity) instanceof AttachedEntityMetadata; }
/** * Return record identity of entity. */ public ORID recordIdentity(final T entity) { return recordIdentity(id(entity)); }
@Nullable @Override public String getIdFromToken(final String continuationToken) { try { return continuationToken != null ? entityAdapter.recordIdentity(new DetachedEntityId(continuationToken)).toString() : null; } catch (IllegalArgumentException e) { throw new ContinuationTokenException( format("Caught exception parsing id from continuation token '%s'", continuationToken), e); } }
/** * Returns the document identifier in the repository's index for the given component. */ @Nullable private String identifier(@Nullable final EntityId componentId) { return componentId != null ? componentId.getValue() : null; }
/** * Override this method to customize {@link EntityEvent}s for this adapter. */ @Nullable public EntityEvent newEvent(final ODocument document, final EventKind eventKind) { EntityMetadata metadata = new AttachedEntityMetadata(this, document); switch (eventKind) { case CREATE: return new EntityCreatedEvent(metadata); case UPDATE: return new EntityUpdatedEvent(metadata); case DELETE: return new EntityDeletedEvent(metadata); default: return null; } }
/** * Add new entity. */ public ODocument addEntity(final ODatabaseDocumentTx db, final T entity) { checkNotNull(db); checkNotNull(entity); // new entity must either have no metadata or it should be a new record EntityMetadata metadata = entity.getEntityMetadata(); checkState(metadata == null || recordIdentity(metadata.getId()).isNew()); ODocument doc = db.newInstance(typeName); return writeEntity(doc, entity); }
/** * Populates index requests based on the given event. */ public IndexBatchRequest(final EntityBatchEvent batchEvent) { for (final EntityEvent event : batchEvent.getEvents()) { if (event instanceof ComponentEvent) { consume((ComponentEvent) event); } else if (event instanceof AssetEvent) { consume((AssetEvent) event); } } }
@Nullable private String lastIdFromContinuationToken(final String continuationToken) { try { return continuationTokenHelper.getIdFromToken(continuationToken); } catch (ContinuationTokenException e) { log.debug(e.getMessage(), e); throw new WebApplicationException(NOT_ACCEPTABLE); } }
private boolean shouldProcess(final EntityEvent event) { checkNotNull(event); return event.isLocal(); } }
@Override public boolean equals(final Object o) { if (this == o) { return true; } else if (o instanceof AttachedEntityVersion) { AttachedEntityVersion that = (AttachedEntityVersion)o; return version == that.version; } else if (o instanceof EntityVersion) { EntityVersion that = (EntityVersion)o; return getValue().equals(that.getValue()); } return false; }
@Override @Guarded(by = ACTIVE) public void saveComponent(final Component component) { if (EntityHelper.hasMetadata(component)) { componentEntityAdapter.editEntity(db, component); } else { componentEntityAdapter.addEntity(db, component); } }
/** * Attach metadata to entity. */ protected void attachMetadata(final T entity, final ODocument doc) { entity.setEntityMetadata(new AttachedEntityMetadata(this, doc)); }
private CapabilityIdentity identity(final CapabilityStorageItem item) { return CapabilityStorageItem.identity(EntityHelper.id(item)); }
/** * Returns the {@link CapabilityIdentity} for the persisted {@link EntityId}. * * @since 3.1 */ static CapabilityIdentity identity(EntityId entityId) { return new CapabilityIdentity(entityId.getValue()); }
@Nullable private String lastIdFromContinuationToken(final String continuationToken) { try { return continuationTokenHelper.getIdFromToken(continuationToken); } catch (ContinuationTokenException e) { log.debug(e.getMessage(), e); throw new WebApplicationException(NOT_ACCEPTABLE); } }
/** * Returns attached metadata of entity. */ public static AttachedEntityMetadata metadata(final Entity entity) { EntityMetadata metadata = EntityHelper.metadata(entity); checkState(metadata instanceof AttachedEntityMetadata, "Entity not attached"); return (AttachedEntityMetadata) metadata; }
@Override @Guarded(by = ACTIVE) public void saveAsset(final Asset asset) { if (EntityHelper.hasMetadata(asset)) { assetEntityAdapter.editEntity(db, asset); } else { assetEntityAdapter.addEntity(db, asset); } }