/** * 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); }
@Override public Set<String> deleteAsset(final Repository repository, final Asset asset) { checkNotNull(repository); checkNotNull(asset); if (!canDeleteAsset(repository, asset)) { throw new AuthorizationException(); } return getComponentMaintenanceFacet(repository).deleteAsset(asset.getEntityMetadata().getId()); }
@Override public Set<String> deleteComponent(final Repository repository, final Component component) { checkNotNull(repository); checkNotNull(component); if (!canDeleteComponent(repository, component)) { throw new AuthorizationException(); } return getComponentMaintenanceFacet(repository).deleteComponent(component.getEntityMetadata().getId()); }
private ComponentXO fromComponent(Component component, Repository repository) { String internalId = id(component).getValue(); ComponentXO componentXO = componentXOFactory.createComponentXO(); componentXO .setAssets(browseService.browseComponentAssets(repository, component.getEntityMetadata().getId().getValue()) .getResults() .stream() .map(asset -> fromAsset(asset, repository)) .collect(toList())); componentXO.setGroup(component.group()); componentXO.setName(component.name()); componentXO.setVersion(component.version()); componentXO.setId(new RepositoryItemIDXO(repository.getName(), internalId).getValue()); componentXO.setRepository(repository.getName()); componentXO.setFormat(repository.getFormat().getValue()); for (ComponentsResourceExtension componentsResourceExtension : componentsResourceExtensions) { componentXO = componentsResourceExtension.updateComponentXO(componentXO, component); } return componentXO; }