diff --git a/src/main/java/caosdb/server/entity/container/TransactionContainer.java b/src/main/java/caosdb/server/entity/container/TransactionContainer.java index 58cdb8d953ecf60c3ee49380ea7e2407f8348a39..ff799a4df5eb74a0d15e48a990e735af609925ec 100644 --- a/src/main/java/caosdb/server/entity/container/TransactionContainer.java +++ b/src/main/java/caosdb/server/entity/container/TransactionContainer.java @@ -158,6 +158,13 @@ public class TransactionContainer extends Container<Entity> implements ToElement return this.owner; } + /** + * Get the first entity from this container which has this name. + * + * <p>Return null if no matching is in this container. + * + * @param name + */ public EntityInterface getEntityByName(final String name) { for (final EntityInterface e : this) { if (e.hasName() && e.getName().equals(name)) { diff --git a/src/main/java/caosdb/server/jobs/core/CheckDatatypePresent.java b/src/main/java/caosdb/server/jobs/core/CheckDatatypePresent.java index 7948900d28bb876c15d75e28e29766af4255af91..69d36f42fa2f457b05dcc394659b5c088976bff4 100644 --- a/src/main/java/caosdb/server/jobs/core/CheckDatatypePresent.java +++ b/src/main/java/caosdb/server/jobs/core/CheckDatatypePresent.java @@ -48,10 +48,11 @@ public final class CheckDatatypePresent extends EntityJob { @Override public final void run() { try { - resolveId(getEntity()); // inherit datatype if (!getEntity().hasDatatype()) { + resolveId(getEntity()); + inheritDatatypeFromAbstractEntity(); // still no data type ??? try to get it from parent... @@ -199,7 +200,9 @@ public final class CheckDatatypePresent extends EntityJob { if (!entity.hasId() && entity.hasName()) { try { entity.setId(retrieveValidIDByName(entity.getName())); - entity.setEntityStatus(EntityStatus.VALID); + if (entity.getEntityStatus() != EntityStatus.UNQUALIFIED) { + entity.setEntityStatus(EntityStatus.VALID); + } } catch (final EntityDoesNotExistException exc) { entity.addError(ServerMessages.ENTITY_DOES_NOT_EXIST); } catch (final EntityWasNotUniqueException exc) { diff --git a/src/main/java/caosdb/server/jobs/core/CheckNamePresent.java b/src/main/java/caosdb/server/jobs/core/CheckNamePresent.java index 813c7dc88bab149204b5410a45bffd654339f8be..d63a9cc54d4c413a0c827a562afa023b610ff872 100644 --- a/src/main/java/caosdb/server/jobs/core/CheckNamePresent.java +++ b/src/main/java/caosdb/server/jobs/core/CheckNamePresent.java @@ -42,6 +42,7 @@ public class CheckNamePresent extends EntityJob { break; case SHOULD: getEntity().addWarning(ServerMessages.ENTITY_HAS_NO_NAME); + break; default: break; }