use of org.osate.aadl2.BusSubcomponent in project VERDICT by ge-high-assurance.
the class Aadl2Vdm method getStrRepofExpr.
/**
* @author Paul Meng
* The calling function should know the size of the return array
*/
String[] getStrRepofExpr(PropertyExpression expr) {
String[] values = new String[4];
if (expr instanceof BooleanLiteralImpl) {
BooleanLiteralImpl bool = ((BooleanLiteralImpl) expr);
// values[0] = bool.getValue()?"1":"0";
values[0] = bool.getValue() ? "true" : "false";
} else if (expr instanceof IntegerLiteralImpl) {
IntegerLiteralImpl intVal = ((IntegerLiteralImpl) expr);
values[0] = String.valueOf((int) intVal.getValue());
} else if (expr instanceof NamedValueImpl) {
NamedValueImpl namedValue = ((NamedValueImpl) expr);
if (namedValue.getNamedValue() instanceof EnumerationLiteralImpl) {
EnumerationLiteralImpl enu = ((EnumerationLiteralImpl) namedValue.getNamedValue());
values[0] = enu.getName();
} else {
throw new RuntimeException("Unsupported property value: " + namedValue.getNamedValue());
}
} else if (expr instanceof ListValueImpl) {
ListValueImpl listValue = (ListValueImpl) expr;
if (listValue.getOwnedListElements().size() == 1) {
values = getStrRepofExpr(listValue.getOwnedListElements().get(0));
} else {
throw new RuntimeException("Unexpected!");
}
} else if (expr instanceof ReferenceValueImpl) {
// We only consider the value of expr is a bus expression here.
ReferenceValueImpl refValue = (ReferenceValueImpl) expr;
if (refValue.getContainmentPathElements().size() == 1) {
ContainmentPathElement element = refValue.getContainmentPathElements().get(0);
NamedElement namedElement = element.getNamedElement();
if (namedElement instanceof BusSubcomponent) {
ComponentImplementation impl = ((BusSubcomponent) namedElement).getContainingComponentImpl();
String compTypeName = impl.getTypeName();
values[0] = compTypeName;
values[1] = impl.getName();
values[2] = "";
values[3] = namedElement.getName();
} else {
throw new RuntimeException("Unexpected!");
}
} else if (refValue.getContainmentPathElements().size() == 2) {
// This is to deal with the expression "subcomponent . bus"
ContainmentPathElement elementZero = refValue.getContainmentPathElements().get(0);
ContainmentPathElement elementOne = refValue.getContainmentPathElements().get(1);
NamedElement namedElementZero = elementZero.getNamedElement();
NamedElement namedElementOne = elementOne.getNamedElement();
if (namedElementZero instanceof SystemSubcomponent) {
ComponentImplementation impl = ((SystemSubcomponent) namedElementZero).getComponentImplementation();
values[0] = impl.getTypeName();
values[1] = impl.getName();
values[2] = namedElementZero.getName();
values[3] = namedElementOne.getName();
} else {
throw new RuntimeException("Unexpected!");
}
} else {
throw new RuntimeException("Unexpected number of property values: " + refValue.getContainmentPathElements().size());
}
} else if (expr instanceof StringLiteralImpl) {
StringLiteralImpl strVal = ((StringLiteralImpl) expr);
values[0] = strVal.getValue();
} else {
throw new RuntimeException("Unsupported property value: " + expr);
}
return values;
}
use of org.osate.aadl2.BusSubcomponent in project VERDICT by ge-high-assurance.
the class Aadl2CsvTranslator method getStrRepofExpr.
/**
* The calling function should know the size of the return array
*/
String[] getStrRepofExpr(PropertyExpression expr) {
String[] values = new String[4];
if (expr instanceof BooleanLiteralImpl) {
BooleanLiteralImpl bool = ((BooleanLiteralImpl) expr);
values[0] = bool.getValue() ? "1" : "0";
} else if (expr instanceof IntegerLiteralImpl) {
IntegerLiteralImpl intVal = ((IntegerLiteralImpl) expr);
values[0] = String.valueOf((int) intVal.getValue());
} else if (expr instanceof NamedValueImpl) {
NamedValueImpl namedValue = ((NamedValueImpl) expr);
if (namedValue.getNamedValue() instanceof EnumerationLiteralImpl) {
EnumerationLiteralImpl enu = ((EnumerationLiteralImpl) namedValue.getNamedValue());
values[0] = enu.getName();
} else {
throw new RuntimeException("Unsupported property value: " + namedValue.getNamedValue());
}
} else if (expr instanceof ListValueImpl) {
ListValueImpl listValue = (ListValueImpl) expr;
if (listValue.getOwnedListElements().size() == 1) {
values = getStrRepofExpr(listValue.getOwnedListElements().get(0));
} else {
throw new RuntimeException("Unexpected!");
}
} else if (expr instanceof ReferenceValueImpl) {
// We only consider the value of expr is a bus expression here.
ReferenceValueImpl refValue = (ReferenceValueImpl) expr;
if (refValue.getContainmentPathElements().size() == 1) {
ContainmentPathElement element = refValue.getContainmentPathElements().get(0);
NamedElement namedElement = element.getNamedElement();
if (namedElement instanceof BusSubcomponent) {
ComponentImplementation impl = ((BusSubcomponent) namedElement).getContainingComponentImpl();
String compTypeName = impl.getTypeName();
values[0] = compTypeName;
values[1] = impl.getName();
values[2] = "";
values[3] = namedElement.getName();
} else {
throw new RuntimeException("Unexpected!");
}
} else if (refValue.getContainmentPathElements().size() == 2) {
// This is to deal with the expression "subcomponent . bus"
ContainmentPathElement elementZero = refValue.getContainmentPathElements().get(0);
ContainmentPathElement elementOne = refValue.getContainmentPathElements().get(1);
NamedElement namedElementZero = elementZero.getNamedElement();
NamedElement namedElementOne = elementOne.getNamedElement();
if (namedElementZero instanceof SystemSubcomponent) {
ComponentImplementation impl = ((SystemSubcomponent) namedElementZero).getComponentImplementation();
values[0] = impl.getTypeName();
values[1] = impl.getName();
values[2] = namedElementZero.getName();
values[3] = namedElementOne.getName();
} else {
throw new RuntimeException("Unexpected!");
}
} else {
throw new RuntimeException("Unexpected number of property values: " + refValue.getContainmentPathElements().size());
}
} else if (expr instanceof StringLiteralImpl) {
StringLiteralImpl strVal = ((StringLiteralImpl) expr);
values[0] = strVal.getValue();
} else {
throw new RuntimeException("Unsupported property value: " + expr);
}
return values;
}
use of org.osate.aadl2.BusSubcomponent in project osate2 by osate.
the class DeviceImplementationImpl method createOwnedBusSubcomponent.
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public BusSubcomponent createOwnedBusSubcomponent() {
BusSubcomponent newOwnedBusSubcomponent = (BusSubcomponent) create(Aadl2Package.eINSTANCE.getBusSubcomponent());
getOwnedBusSubcomponents().add(newOwnedBusSubcomponent);
return newOwnedBusSubcomponent;
}
use of org.osate.aadl2.BusSubcomponent in project osate2 by osate.
the class SystemImplementationImpl method createOwnedBusSubcomponent.
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public BusSubcomponent createOwnedBusSubcomponent() {
BusSubcomponent newOwnedBusSubcomponent = (BusSubcomponent) create(Aadl2Package.eINSTANCE.getBusSubcomponent());
getOwnedBusSubcomponents().add(newOwnedBusSubcomponent);
return newOwnedBusSubcomponent;
}
use of org.osate.aadl2.BusSubcomponent in project osate2 by osate.
the class AadlSubcomponentUtil method setClassifier.
public static void setClassifier(final Subcomponent sc, final SubcomponentType selectedSubcomponentType) {
// Import as necessary
if (selectedSubcomponentType != null) {
// Import its package if necessary
final AadlPackage pkg = (AadlPackage) sc.getElementRoot();
if (selectedSubcomponentType instanceof ComponentClassifier && selectedSubcomponentType.getNamespace() != null && pkg != null) {
final PackageSection section = pkg.getPublicSection();
final AadlPackage selectedClassifierPkg = (AadlPackage) selectedSubcomponentType.getNamespace().getOwner();
if (selectedClassifierPkg != null && pkg != selectedClassifierPkg) {
AadlImportsUtil.addImportIfNeeded(section, selectedClassifierPkg);
}
}
}
if (sc instanceof SystemSubcomponent) {
((SystemSubcomponent) sc).setSystemSubcomponentType((SystemSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof AbstractSubcomponent) {
((AbstractSubcomponent) sc).setAbstractSubcomponentType((AbstractSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof ThreadGroupSubcomponent) {
((ThreadGroupSubcomponent) sc).setThreadGroupSubcomponentType((ThreadGroupSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof ThreadSubcomponent) {
((ThreadSubcomponent) sc).setThreadSubcomponentType((ThreadSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof SubprogramSubcomponent) {
((SubprogramSubcomponent) sc).setSubprogramSubcomponentType((SubprogramSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof SubprogramGroupSubcomponent) {
((SubprogramGroupSubcomponent) sc).setSubprogramGroupSubcomponentType((SubprogramGroupSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof DataSubcomponent) {
((DataSubcomponent) sc).setDataSubcomponentType((DataSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof VirtualBusSubcomponent) {
((VirtualBusSubcomponent) sc).setVirtualBusSubcomponentType((VirtualBusSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof VirtualProcessorSubcomponent) {
((VirtualProcessorSubcomponent) sc).setVirtualProcessorSubcomponentType((VirtualProcessorSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof BusSubcomponent) {
((BusSubcomponent) sc).setBusSubcomponentType((BusSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof ProcessSubcomponent) {
((ProcessSubcomponent) sc).setProcessSubcomponentType((ProcessSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof ProcessorSubcomponent) {
((ProcessorSubcomponent) sc).setProcessorSubcomponentType((ProcessorSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof DeviceSubcomponent) {
((DeviceSubcomponent) sc).setDeviceSubcomponentType((DeviceSubcomponentType) selectedSubcomponentType);
} else if (sc instanceof MemorySubcomponent) {
((MemorySubcomponent) sc).setMemorySubcomponentType((MemorySubcomponentType) selectedSubcomponentType);
} else {
throw new RuntimeException("Unexpected type: " + sc.getClass().getName());
}
}
Aggregations