GeneratedRecord.java
package org.osate.pluginsupport.properties;
import java.util.Objects;
import java.util.Optional;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.osate.aadl2.BasicProperty;
import org.osate.aadl2.BasicPropertyAssociation;
import org.osate.aadl2.RecordValue;
/**
* @since 5.0
*/
public abstract class GeneratedRecord {
public abstract RecordValue toPropertyExpression(ResourceSet resourceSet);
protected Optional<BasicPropertyAssociation> findFieldValue(RecordValue recordValue, String fieldName) {
return recordValue.getOwnedFieldValues()
.stream()
.filter(field -> Objects.equals(field.getProperty().getName(), fieldName))
.findAny();
}
protected BasicProperty loadField(ResourceSet resourceSet, URI uri, String fieldName) {
BasicProperty basicProperty = (BasicProperty) resourceSet.getEObject(uri, true);
if (basicProperty == null) {
throw new RuntimeException("Could not resolve BasicProperty '" + fieldName + "'.");
}
String foundName = basicProperty.getName();
if (!Objects.equals(foundName, fieldName)) {
throw new RuntimeException("Expected BasicProperty '" + fieldName + "', but found '" + foundName + "'.");
}
return basicProperty;
}
}