From 72b5eccfe399f53ce5c705e6293cd77e0f30d9f6 Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Fri, 19 Jun 2020 17:57:29 +0200 Subject: [PATCH] Fixed issue #22 - Added TestUtils.waitForMqtt --- src/main/jastadd/backend/Generation.jadd | 25 +++++++++++++++--------- src/main/jastadd/backend/Mappings.jrag | 6 ++++++ 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/main/jastadd/backend/Generation.jadd b/src/main/jastadd/backend/Generation.jadd index e698e40..1b6dfff 100644 --- a/src/main/jastadd/backend/Generation.jadd +++ b/src/main/jastadd/backend/Generation.jadd @@ -146,16 +146,23 @@ aspect AspectGeneration { sb.append(ind(indent + 1)).append(preemptiveReturnStatement()).append("\n"); sb.append(ind(indent)).append("}\n"); if (!getAlwaysApply()) { - sb.append(ind(indent)).append("if (").append(preemptiveExpectedValue()); - if (getToken().isPrimitiveType()) { - sb.append(" == ").append(inputVariableName); - } else if (effectiveMappings().get(effectiveMappings().size() - 1).isDefaultMappingDefinition()) { - sb.append(" != null && ").append(preemptiveExpectedValue()).append(".equals(") - .append(inputVariableName).append(")"); + MappingDefinition lastMapping = effectiveMappings().get(effectiveMappings().size() - 1); + sb.append(ind(indent)).append("if ("); + if (lastMapping.getToType().isArray()) { + sb.append("java.util.Arrays.equals(").append(preemptiveExpectedValue()) + .append(", ").append(inputVariableName).append(")"); } else { - sb.append(" != null ? ").append(preemptiveExpectedValue()).append(".equals(") - .append(inputVariableName).append(")").append(" : ") - .append(inputVariableName).append(" == null"); + sb.append(preemptiveExpectedValue()); + if (getToken().isPrimitiveType() && lastMapping.getToType().isPrimitiveType()) { + sb.append(" == ").append(inputVariableName); + } else if (lastMapping.isDefaultMappingDefinition()) { + sb.append(" != null && ").append(preemptiveExpectedValue()).append(".equals(") + .append(inputVariableName).append(")"); + } else { + sb.append(" != null ? ").append(preemptiveExpectedValue()).append(".equals(") + .append(inputVariableName).append(")").append(" : ") + .append(inputVariableName).append(" == null"); + } } sb.append(") { ").append(preemptiveReturnStatement()).append(" }\n"); } diff --git a/src/main/jastadd/backend/Mappings.jrag b/src/main/jastadd/backend/Mappings.jrag index 7add42f..fd40385 100644 --- a/src/main/jastadd/backend/Mappings.jrag +++ b/src/main/jastadd/backend/Mappings.jrag @@ -151,6 +151,12 @@ aspect Mappings { default: return false; } } + syn boolean MappingDefinitionType.isPrimitiveType() = false; + eq JavaMappingDefinitionType.isPrimitiveType() = getType().isPrimitiveType(); + + // --- isArray --- + syn boolean MappingDefinitionType.isArray() = false; + eq JavaArrayMappingDefinitionType.isArray() = true; // --- suitableDefaultMapping --- syn DefaultMappingDefinition UpdateDefinition.suitableDefaultMapping(); -- GitLab