Added component/bus deletion and rename
This commit is contained in:
1 parent
f93a2afa63
commit
3172d7e4cf
14 files changed
+322
-159
No files matched your search
@@ -153,6 +153,37 @@ namespace domain {
|
||||
return nullopt;
|
||||
}
|
||||
|
||||
|
||||
std::vector<ValidationError>
|
||||
ComdelValidator::validateMemoryReferences(Schema &schema, Library &library, ValidationContext context) {
|
||||
std::set<std::string> memoryInstances;
|
||||
for(auto& component: schema.componentInstances) {
|
||||
if(component->component.getType() == Component::MEMORY) {
|
||||
memoryInstances.insert(component->name);
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<ValidationError> errors;
|
||||
for(auto& component: schema.componentInstances) {
|
||||
if(component->component.getType() == Component::PROCESSOR) {
|
||||
for(auto& attribute: component->attributes) {
|
||||
if(attribute.value.isType(Value::MEMORY_REFERENCE)) {
|
||||
auto memoryReference = attribute.value.asMemoryReference();
|
||||
if(memoryReference != nullopt) {
|
||||
if(memoryInstances.count(*memoryReference) == 0) {
|
||||
context.attributes["memoryReference"] = domain::Value::fromString(memoryReference.value());
|
||||
auto message = populateMessage("There isn't a memory instance '{memoryReference}'", context);
|
||||
errors.emplace_back(component.get(), nullptr, Action::ERROR, message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
std::vector<ValidationError>
|
||||
ComdelValidator::validateInstanceNames(Schema &schema, Library &library, ValidationContext context) {
|
||||
std::set<std::string> names;
|
||||
|
||||
@@ -35,6 +35,8 @@ namespace domain {
|
||||
|
||||
std::optional<ValidationError> validateRule(Rule rule, ValidationContext context);
|
||||
|
||||
std::vector<ValidationError> validateMemoryReferences(Schema &schema, Library &library, ValidationContext context);
|
||||
|
||||
std::vector<ValidationError> validateInstanceNames(Schema &schema, Library &library, ValidationContext context);
|
||||
|
||||
std::vector<ValidationError> validateInstanceCount(Schema &schema, Library &library, ValidationContext context);
|
||||
|
||||
Reference in new issue
Block a user