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

WIP: entity-id

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