use of org.osate.aadl2.IntegerLiteral in project osate2 by osate.
the class InterpreterUtil method ceil.
public static IntegerLiteral ceil(NumberValue nv) {
if (nv instanceof RealLiteral) {
long iv = new Double(Math.ceil(((RealLiteral) nv).getValue())).longValue();
IntegerLiteral result = Aadl2Factory.eINSTANCE.createIntegerLiteral();
result.setValue(iv);
result.setUnit(nv.getUnit());
return result;
} else {
return (IntegerLiteral) nv;
}
}
use of org.osate.aadl2.IntegerLiteral in project osate2 by osate.
the class InterpreterUtil method subtract.
public static NumberValue subtract(NumberValue v1, NumberValue v2) {
if (v2 instanceof IntegerLiteral) {
IntegerLiteral neg = Aadl2Factory.eINSTANCE.createIntegerLiteral();
neg.setValue(-((IntegerLiteral) v2).getValue());
neg.setUnit(v2.getUnit());
return add(v1, neg);
} else {
RealLiteral neg = Aadl2Factory.eINSTANCE.createRealLiteral();
neg.setValue(-((RealLiteral) v2).getValue());
neg.setUnit(v2.getUnit());
return add(v1, neg);
}
}
use of org.osate.aadl2.IntegerLiteral in project osate2 by osate.
the class InterpreterUtil method divide.
public static NumberValue divide(NumberValue v1, NumberValue v2) {
UnitLiteral minUnit = smallerUnit(v1.getUnit(), v2.getUnit());
boolean twoUnits = v1.getUnit() != null && v2.getUnit() != null;
UnitLiteral unit = (v1.getUnit() != null) ? v1.getUnit() : v2.getUnit();
double s1 = (!twoUnits) ? (v1 instanceof IntegerLiteral) ? ((IntegerLiteral) v1).getValue() : ((RealLiteral) v1).getValue() : v1.getScaledValue(minUnit);
double s2 = (!twoUnits) ? (v2 instanceof IntegerLiteral) ? ((IntegerLiteral) v2).getValue() : ((RealLiteral) v2).getValue() : v2.getScaledValue(minUnit);
RealLiteral result = Aadl2Factory.eINSTANCE.createRealLiteral();
result.setValue(s1 / s2);
result.setUnit(twoUnits ? null : unit);
return result;
}
use of org.osate.aadl2.IntegerLiteral in project osate2 by osate.
the class InterpreterUtil method mod.
public static NumberValue mod(IntegerLiteral v1, IntegerLiteral v2) {
UnitLiteral minUnit = smallerUnit(v1.getUnit(), v2.getUnit());
boolean twoUnits = v1.getUnit() != null && v2.getUnit() != null;
UnitLiteral unit = (v1.getUnit() != null) ? v1.getUnit() : v2.getUnit();
long s1 = (!twoUnits) ? v1.getValue() : Math.round(v1.getScaledValue(minUnit));
long s2 = (!twoUnits) ? v2.getValue() : Math.round(v2.getScaledValue(minUnit));
IntegerLiteral result = Aadl2Factory.eINSTANCE.createIntegerLiteral();
result.setValue(s1 % s2);
result.setUnit(twoUnits ? minUnit : unit);
return result;
}
use of org.osate.aadl2.IntegerLiteral in project osate2 by osate.
the class ReqSpecSemanticSequencer method sequence.
@Override
public void sequence(ISerializationContext context, EObject semanticObject) {
EPackage epackage = semanticObject.eClass().getEPackage();
ParserRule rule = context.getParserRule();
Action action = context.getAssignedAction();
Set<Parameter> parameters = context.getEnabledBooleanParameters();
if (epackage == Aadl2Package.eINSTANCE)
switch(semanticObject.eClass().getClassifierID()) {
case Aadl2Package.AADL_BOOLEAN:
sequence_TypeRef(context, (AadlBoolean) semanticObject);
return;
case Aadl2Package.AADL_INTEGER:
sequence_TypeRef(context, (AadlInteger) semanticObject);
return;
case Aadl2Package.AADL_REAL:
sequence_TypeRef(context, (AadlReal) semanticObject);
return;
case Aadl2Package.AADL_STRING:
sequence_TypeRef(context, (AadlString) semanticObject);
return;
case Aadl2Package.BOOLEAN_LITERAL:
sequence_ABooleanLiteral(context, (BooleanLiteral) semanticObject);
return;
case Aadl2Package.INTEGER_LITERAL:
sequence_AIntegerTerm(context, (IntegerLiteral) semanticObject);
return;
case Aadl2Package.REAL_LITERAL:
sequence_ARealTerm(context, (RealLiteral) semanticObject);
return;
case Aadl2Package.STRING_LITERAL:
sequence_StringTerm(context, (StringLiteral) semanticObject);
return;
}
else if (epackage == CommonPackage.eINSTANCE)
switch(semanticObject.eClass().getClassifierID()) {
case CommonPackage.ABINARY_OPERATION:
sequence_AAdditiveExpression_AAndExpression_AEqualityExpression_AMultiplicativeExpression_AOrExpression_ARelationalExpression(context, (ABinaryOperation) semanticObject);
return;
case CommonPackage.ACONDITIONAL:
sequence_AIfExpression(context, (AConditional) semanticObject);
return;
case CommonPackage.AFUNCTION_CALL:
sequence_AFunctionCall(context, (AFunctionCall) semanticObject);
return;
case CommonPackage.AMODEL_REFERENCE:
sequence_AModelReference(context, (AModelReference) semanticObject);
return;
case CommonPackage.APROPERTY_REFERENCE:
if (rule == grammarAccess.getAModelOrPropertyReferenceRule() || rule == grammarAccess.getAExpressionRule() || rule == grammarAccess.getAOrExpressionRule() || action == grammarAccess.getAOrExpressionAccess().getABinaryOperationLeftAction_1_0_0_0() || rule == grammarAccess.getAAndExpressionRule() || action == grammarAccess.getAAndExpressionAccess().getABinaryOperationLeftAction_1_0_0_0() || rule == grammarAccess.getAEqualityExpressionRule() || action == grammarAccess.getAEqualityExpressionAccess().getABinaryOperationLeftAction_1_0_0_0() || rule == grammarAccess.getARelationalExpressionRule() || action == grammarAccess.getARelationalExpressionAccess().getABinaryOperationLeftAction_1_0_0_0() || rule == grammarAccess.getAAdditiveExpressionRule() || action == grammarAccess.getAAdditiveExpressionAccess().getABinaryOperationLeftAction_1_0_0_0() || rule == grammarAccess.getAMultiplicativeExpressionRule() || action == grammarAccess.getAMultiplicativeExpressionAccess().getABinaryOperationLeftAction_1_0_0_0() || rule == grammarAccess.getAUnaryOperationRule() || rule == grammarAccess.getAUnitExpressionRule() || action == grammarAccess.getAUnitExpressionAccess().getAUnitExpressionExpressionAction_1_0() || rule == grammarAccess.getAPrimaryExpressionRule() || rule == grammarAccess.getAParenthesizedExpressionRule()) {
sequence_AModelOrPropertyReference_APropertyReference(context, (APropertyReference) semanticObject);
return;
} else if (rule == grammarAccess.getAPropertyReferenceRule()) {
sequence_APropertyReference(context, (APropertyReference) semanticObject);
return;
} else
break;
case CommonPackage.ARANGE:
sequence_ARangeExpression(context, (ARange) semanticObject);
return;
case CommonPackage.AUNARY_OPERATION:
sequence_AUnaryOperation(context, (AUnaryOperation) semanticObject);
return;
case CommonPackage.AUNIT_EXPRESSION:
if (rule == grammarAccess.getAExpressionRule() || rule == grammarAccess.getAOrExpressionRule() || action == grammarAccess.getAOrExpressionAccess().getABinaryOperationLeftAction_1_0_0_0() || rule == grammarAccess.getAAndExpressionRule() || action == grammarAccess.getAAndExpressionAccess().getABinaryOperationLeftAction_1_0_0_0() || rule == grammarAccess.getAEqualityExpressionRule() || action == grammarAccess.getAEqualityExpressionAccess().getABinaryOperationLeftAction_1_0_0_0() || rule == grammarAccess.getARelationalExpressionRule() || action == grammarAccess.getARelationalExpressionAccess().getABinaryOperationLeftAction_1_0_0_0() || rule == grammarAccess.getAAdditiveExpressionRule() || action == grammarAccess.getAAdditiveExpressionAccess().getABinaryOperationLeftAction_1_0_0_0() || rule == grammarAccess.getAMultiplicativeExpressionRule() || action == grammarAccess.getAMultiplicativeExpressionAccess().getABinaryOperationLeftAction_1_0_0_0() || rule == grammarAccess.getAUnaryOperationRule() || rule == grammarAccess.getAUnitExpressionRule() || action == grammarAccess.getAUnitExpressionAccess().getAUnitExpressionExpressionAction_1_0() || rule == grammarAccess.getAPrimaryExpressionRule() || rule == grammarAccess.getAParenthesizedExpressionRule()) {
sequence_AUnitExpression(context, (AUnitExpression) semanticObject);
return;
} else if (rule == grammarAccess.getShowValueRule()) {
sequence_ShowValue(context, (AUnitExpression) semanticObject);
return;
} else
break;
case CommonPackage.AVARIABLE_REFERENCE:
sequence_AVariableReference(context, (AVariableReference) semanticObject);
return;
case CommonPackage.COMPUTE_DECLARATION:
sequence_ComputeDeclaration(context, (ComputeDeclaration) semanticObject);
return;
case CommonPackage.DESCRIPTION:
sequence_Description(context, (Description) semanticObject);
return;
case CommonPackage.DESCRIPTION_ELEMENT:
sequence_DescriptionElement(context, (DescriptionElement) semanticObject);
return;
case CommonPackage.IMAGE_REFERENCE:
sequence_ImageReference(context, (ImageReference) semanticObject);
return;
case CommonPackage.MODEL_REF:
sequence_TypeRef(context, (ModelRef) semanticObject);
return;
case CommonPackage.PROPERTY_REF:
sequence_PropertyRef(context, (PropertyRef) semanticObject);
return;
case CommonPackage.RATIONALE:
sequence_Rationale(context, (Rationale) semanticObject);
return;
case CommonPackage.TYPE_REF:
sequence_TypeRef(context, (TypeRef) semanticObject);
return;
case CommonPackage.UNCERTAINTY:
sequence_Uncertainty(context, (Uncertainty) semanticObject);
return;
}
else if (epackage == ReqSpecPackage.eINSTANCE)
switch(semanticObject.eClass().getClassifierID()) {
case ReqSpecPackage.DESIRED_VALUE:
sequence_DesiredValue(context, (DesiredValue) semanticObject);
return;
case ReqSpecPackage.DOCUMENT_SECTION:
sequence_DocumentSection(context, (DocumentSection) semanticObject);
return;
case ReqSpecPackage.EXTERNAL_DOCUMENT:
sequence_ExternalDocument(context, (ExternalDocument) semanticObject);
return;
case ReqSpecPackage.GLOBAL_CONSTANTS:
sequence_GlobalConstants(context, (GlobalConstants) semanticObject);
return;
case ReqSpecPackage.GLOBAL_REQUIREMENT_SET:
sequence_GlobalRequirementSet(context, (GlobalRequirementSet) semanticObject);
return;
case ReqSpecPackage.GOAL:
if (rule == grammarAccess.getDocGoalRule()) {
sequence_DocGoal(context, (Goal) semanticObject);
return;
} else if (rule == grammarAccess.getContractualElementRule() || rule == grammarAccess.getGoalRule()) {
sequence_Goal(context, (Goal) semanticObject);
return;
} else
break;
case ReqSpecPackage.INCLUDE_GLOBAL_REQUIREMENT:
sequence_IncludeGlobalRequirement(context, (IncludeGlobalRequirement) semanticObject);
return;
case ReqSpecPackage.INFORMAL_PREDICATE:
sequence_InformalPredicate(context, (InformalPredicate) semanticObject);
return;
case ReqSpecPackage.REQ_DOCUMENT:
sequence_ReqDocument(context, (ReqDocument) semanticObject);
return;
case ReqSpecPackage.REQ_SPEC:
sequence_ReqSpec(context, (ReqSpec) semanticObject);
return;
case ReqSpecPackage.REQ_VAL_DECLARATION:
sequence_ValDeclaration(context, (ReqValDeclaration) semanticObject);
return;
case ReqSpecPackage.REQUIREMENT:
if (rule == grammarAccess.getDocRequirementRule()) {
sequence_DocRequirement(context, (Requirement) semanticObject);
return;
} else if (rule == grammarAccess.getGlobalRequirementRule()) {
sequence_GlobalRequirement(context, (Requirement) semanticObject);
return;
} else if (rule == grammarAccess.getContractualElementRule() || rule == grammarAccess.getSystemRequirementRule()) {
sequence_SystemRequirement(context, (Requirement) semanticObject);
return;
} else
break;
case ReqSpecPackage.STAKEHOLDER_GOALS:
sequence_StakeholderGoals(context, (StakeholderGoals) semanticObject);
return;
case ReqSpecPackage.SYSTEM_REQUIREMENT_SET:
sequence_SystemRequirementSet(context, (SystemRequirementSet) semanticObject);
return;
case ReqSpecPackage.VALUE_PREDICATE:
sequence_ValuePredicate(context, (ValuePredicate) semanticObject);
return;
case ReqSpecPackage.WHEN_CONDITION:
sequence_WhenCondition(context, (WhenCondition) semanticObject);
return;
}
if (errorAcceptor != null)
errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
Aggregations