Skip to content
Snippets Groups Projects
Verified Commit c4f12649 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

WIP: entity-id

parent 3c1b1c70
No related branches found
No related tags found
1 merge request!70Refactory the entity id
Pipeline #27773 failed
......@@ -42,12 +42,12 @@ public class GetFileRecordByPath extends CacheableBackendTransaction<String, Spa
public GetFileRecordByPath(final String path) {
super(cache);
this.path = path;
this.path = (path == null ? null : path.replaceFirst("^/", ""));
}
public static void removeCached(final String path) {
if (path != null && cache != null) {
cache.remove(path);
cache.remove(path.replaceFirst("^/", ""));
}
}
......
......@@ -64,6 +64,11 @@ public class RetrieveSparseEntity extends CacheableBackendTransaction<String, Sp
this.entity.getVersion().setId(version);
}
public RetrieveSparseEntity(SparseEntity entity) {
this(new RetrieveEntity(new EntityID(entity.id)));
this.entity.getVersion().setId(entity.versionId);
}
@Override
public SparseEntity executeNoCache() throws TransactionException {
final RetrieveSparseEntityImpl t = getImplementation(RetrieveSparseEntityImpl.class);
......
......@@ -30,14 +30,11 @@ import java.io.IOException;
import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
import org.caosdb.server.database.misc.TransactionBenchmark;
import org.caosdb.server.entity.Entity;
import org.caosdb.server.entity.FileProperties;
import org.caosdb.server.entity.EntityInterface;
import org.caosdb.server.entity.Message;
import org.caosdb.server.entity.Message.MessageType;
import org.caosdb.server.entity.RetrieveEntity;
import org.caosdb.server.permissions.EntityPermission;
import org.caosdb.server.transaction.RetrieveSparseEntityByPath;
import org.caosdb.server.transaction.Transaction;
import org.caosdb.server.utils.FileUtils;
import org.caosdb.server.utils.ServerMessages;
import org.jdom2.Attribute;
......@@ -186,7 +183,7 @@ public class FileSystemResource extends AbstractCaosDBServerResource {
}
protected String getEntityID(final String path) throws Exception {
final Entity fileEnt = getEntity(path);
final EntityInterface fileEnt = getEntity(path);
return fileEnt.getId().toString();
}
......@@ -197,13 +194,12 @@ public class FileSystemResource extends AbstractCaosDBServerResource {
* @return
* @throws Exception
*/
private Entity getEntity(final String path) throws Exception {
private EntityInterface getEntity(final String path) throws Exception {
final long t1 = System.currentTimeMillis();
final Entity e = new RetrieveEntity();
final FileProperties fp = new FileProperties(null, path, null);
e.setFileProperties(fp);
final Transaction<?> t = new RetrieveSparseEntityByPath(e);
final EntityInterface e;
final RetrieveSparseEntityByPath t = new RetrieveSparseEntityByPath(path);
t.execute();
e = t.getEntity();
final long t2 = System.currentTimeMillis();
getBenchmark().addMeasurement(this.getClass().getSimpleName() + ".getEntity", t2 - t1);
return e;
......
......@@ -23,16 +23,18 @@
package org.caosdb.server.transaction;
import org.caosdb.server.database.backend.transaction.GetFileRecordByPath;
import org.caosdb.server.database.backend.transaction.RetrieveSparseEntity;
import org.caosdb.server.entity.EntityInterface;
import org.caosdb.server.entity.container.TransactionContainer;
public class RetrieveSparseEntityByPath extends Transaction<TransactionContainer> {
private EntityInterface entity;
private String path;
public RetrieveSparseEntityByPath(final EntityInterface entity) {
public RetrieveSparseEntityByPath(String path) {
super(new TransactionContainer());
this.entity = entity;
this.path = path;
}
@Override
......@@ -57,9 +59,9 @@ public class RetrieveSparseEntityByPath extends Transaction<TransactionContainer
@Override
protected void transaction() throws Exception {
String path = entity.getFileProperties().getPath();
final GetFileRecordByPath r = execute(new GetFileRecordByPath(path), getAccess());
entity.parseSparseEntity(r.getEntity());
RetrieveSparseEntity e = execute(new RetrieveSparseEntity(r.getEntity()), getAccess());
entity = e.getEntity();
}
@Override
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment