| <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| <xsd:schema xmlns:am="http://app4mc.eclipse.org/amalthea/1.0.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ecore:nsPrefix="am" ecore:package="org.eclipse.app4mc.amalthea.model" targetNamespace="http://app4mc.eclipse.org/amalthea/1.0.0"> |
| <xsd:import namespace="http://www.eclipse.org/emf/2002/Ecore" schemaLocation="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.xsd"/> |
| <xsd:annotation> |
| <xsd:documentation>* |
| ******************************************************************************* |
| Copyright (c) 2015-2020 Robert Bosch GmbH and others. |
| |
| This program and the accompanying materials are made |
| available under the terms of the Eclipse Public License 2.0 |
| which is available at https://www.eclipse.org/legal/epl-2.0/ |
| |
| SPDX-License-Identifier: EPL-2.0 |
| *******************************************************************************</xsd:documentation> |
| </xsd:annotation> |
| <xsd:element ecore:ignore="true" name="Amalthea" type="am:Amalthea"/> |
| <xsd:element ecore:ignore="true" name="CommonElements" type="am:CommonElements"/> |
| <xsd:element ecore:ignore="true" name="BaseObject" type="am:BaseObject"/> |
| <xsd:element ecore:ignore="true" name="ReferableObject" type="am:ReferableObject"/> |
| <xsd:element ecore:ignore="true" name="ReferableBaseObject" type="am:ReferableBaseObject"/> |
| <xsd:element ecore:ignore="true" name="IAnnotatable" type="am:IAnnotatable"/> |
| <xsd:element ecore:ignore="true" name="ITaggable" type="am:ITaggable"/> |
| <xsd:element ecore:ignore="true" name="INamed" type="am:INamed"/> |
| <xsd:element ecore:ignore="true" name="IReferable" type="am:IReferable"/> |
| <xsd:element ecore:ignore="true" name="IDisplayName" type="am:IDisplayName"/> |
| <xsd:element ecore:ignore="true" name="IDescription" type="am:IDescription"/> |
| <xsd:element ecore:ignore="true" name="INamespaceMember" type="am:INamespaceMember"/> |
| <xsd:element ecore:ignore="true" name="Tag" type="am:Tag"/> |
| <xsd:element ecore:ignore="true" name="Namespace" type="am:Namespace"/> |
| <xsd:element ecore:ignore="true" name="Classifier" type="am:Classifier"/> |
| <xsd:element ecore:ignore="true" name="CoreClassifier" type="am:CoreClassifier"/> |
| <xsd:element ecore:ignore="true" name="MemoryClassifier" type="am:MemoryClassifier"/> |
| <xsd:element ecore:ignore="true" name="TransmissionPolicy" type="am:TransmissionPolicy"/> |
| <xsd:element ecore:ignore="true" name="Quantity" type="am:Quantity"/> |
| <xsd:element ecore:ignore="true" name="TimeComparable" type="am:TimeComparable"/> |
| <xsd:element ecore:ignore="true" name="Time" type="am:Time"/> |
| <xsd:element ecore:ignore="true" name="Frequency" type="am:Frequency"/> |
| <xsd:element ecore:ignore="true" name="Voltage" type="am:Voltage"/> |
| <xsd:element ecore:ignore="true" name="DataSize" type="am:DataSize"/> |
| <xsd:element ecore:ignore="true" name="DataRateComparable" type="am:DataRateComparable"/> |
| <xsd:element ecore:ignore="true" name="DataRate" type="am:DataRate"/> |
| <xsd:element ecore:ignore="true" name="CustomProperty" type="am:CustomProperty"/> |
| <xsd:element ecore:ignore="true" name="Value" type="am:Value"/> |
| <xsd:element ecore:ignore="true" name="ListObject" type="am:ListObject"/> |
| <xsd:element ecore:ignore="true" name="StringObject" type="am:StringObject"/> |
| <xsd:element ecore:ignore="true" name="BigIntegerObject" type="am:BigIntegerObject"/> |
| <xsd:element ecore:ignore="true" name="ReferenceObject" type="am:ReferenceObject"/> |
| <xsd:element ecore:ignore="true" name="IntegerObject" type="am:IntegerObject"/> |
| <xsd:element ecore:ignore="true" name="LongObject" type="am:LongObject"/> |
| <xsd:element ecore:ignore="true" name="FloatObject" type="am:FloatObject"/> |
| <xsd:element ecore:ignore="true" name="DoubleObject" type="am:DoubleObject"/> |
| <xsd:element ecore:ignore="true" name="BooleanObject" type="am:BooleanObject"/> |
| <xsd:element ecore:ignore="true" name="NumericStatistic" type="am:NumericStatistic"/> |
| <xsd:element ecore:ignore="true" name="MinAvgMaxStatistic" type="am:MinAvgMaxStatistic"/> |
| <xsd:element ecore:ignore="true" name="SingleValueStatistic" type="am:SingleValueStatistic"/> |
| <xsd:element ecore:ignore="true" name="ITimeDeviation" type="am:ITimeDeviation"/> |
| <xsd:element ecore:ignore="true" name="TimeInterval" type="am:TimeInterval"/> |
| <xsd:element ecore:ignore="true" name="TimeConstant" type="am:TimeConstant"/> |
| <xsd:element ecore:ignore="true" name="TimeHistogram" type="am:TimeHistogram"/> |
| <xsd:element ecore:ignore="true" name="TimeHistogramEntry" type="am:TimeHistogramEntry"/> |
| <xsd:element ecore:ignore="true" name="BoundedTimeDistribution" type="am:BoundedTimeDistribution"/> |
| <xsd:element ecore:ignore="true" name="TruncatedTimeDistribution" type="am:TruncatedTimeDistribution"/> |
| <xsd:element ecore:ignore="true" name="TimeBoundaries" type="am:TimeBoundaries"/> |
| <xsd:element ecore:ignore="true" name="TimeStatistics" type="am:TimeStatistics"/> |
| <xsd:element ecore:ignore="true" name="TimeUniformDistribution" type="am:TimeUniformDistribution"/> |
| <xsd:element ecore:ignore="true" name="TimeGaussDistribution" type="am:TimeGaussDistribution"/> |
| <xsd:element ecore:ignore="true" name="TimeWeibullEstimatorsDistribution" type="am:TimeWeibullEstimatorsDistribution"/> |
| <xsd:element ecore:ignore="true" name="TimeBetaDistribution" type="am:TimeBetaDistribution"/> |
| <xsd:element ecore:ignore="true" name="IDiscreteValueDeviation" type="am:IDiscreteValueDeviation"/> |
| <xsd:element ecore:ignore="true" name="DiscreteValueInterval" type="am:DiscreteValueInterval"/> |
| <xsd:element ecore:ignore="true" name="DiscreteValueConstant" type="am:DiscreteValueConstant"/> |
| <xsd:element ecore:ignore="true" name="DiscreteValueHistogram" type="am:DiscreteValueHistogram"/> |
| <xsd:element ecore:ignore="true" name="DiscreteValueHistogramEntry" type="am:DiscreteValueHistogramEntry"/> |
| <xsd:element ecore:ignore="true" name="BoundedDiscreteValueDistribution" type="am:BoundedDiscreteValueDistribution"/> |
| <xsd:element ecore:ignore="true" name="TruncatedDiscreteValueDistribution" type="am:TruncatedDiscreteValueDistribution"/> |
| <xsd:element ecore:ignore="true" name="DiscreteValueBoundaries" type="am:DiscreteValueBoundaries"/> |
| <xsd:element ecore:ignore="true" name="DiscreteValueStatistics" type="am:DiscreteValueStatistics"/> |
| <xsd:element ecore:ignore="true" name="DiscreteValueUniformDistribution" type="am:DiscreteValueUniformDistribution"/> |
| <xsd:element ecore:ignore="true" name="DiscreteValueGaussDistribution" type="am:DiscreteValueGaussDistribution"/> |
| <xsd:element ecore:ignore="true" name="DiscreteValueWeibullEstimatorsDistribution" type="am:DiscreteValueWeibullEstimatorsDistribution"/> |
| <xsd:element ecore:ignore="true" name="DiscreteValueBetaDistribution" type="am:DiscreteValueBetaDistribution"/> |
| <xsd:element ecore:ignore="true" name="IContinuousValueDeviation" type="am:IContinuousValueDeviation"/> |
| <xsd:element ecore:ignore="true" name="ContinuousValueInterval" type="am:ContinuousValueInterval"/> |
| <xsd:element ecore:ignore="true" name="ContinuousValueConstant" type="am:ContinuousValueConstant"/> |
| <xsd:element ecore:ignore="true" name="ContinuousValueHistogram" type="am:ContinuousValueHistogram"/> |
| <xsd:element ecore:ignore="true" name="ContinuousValueHistogramEntry" type="am:ContinuousValueHistogramEntry"/> |
| <xsd:element ecore:ignore="true" name="BoundedContinuousValueDistribution" type="am:BoundedContinuousValueDistribution"/> |
| <xsd:element ecore:ignore="true" name="TruncatedContinuousValueDistribution" type="am:TruncatedContinuousValueDistribution"/> |
| <xsd:element ecore:ignore="true" name="ContinuousValueBoundaries" type="am:ContinuousValueBoundaries"/> |
| <xsd:element ecore:ignore="true" name="ContinuousValueStatistics" type="am:ContinuousValueStatistics"/> |
| <xsd:element ecore:ignore="true" name="ContinuousValueUniformDistribution" type="am:ContinuousValueUniformDistribution"/> |
| <xsd:element ecore:ignore="true" name="ContinuousValueGaussDistribution" type="am:ContinuousValueGaussDistribution"/> |
| <xsd:element ecore:ignore="true" name="ContinuousValueWeibullEstimatorsDistribution" type="am:ContinuousValueWeibullEstimatorsDistribution"/> |
| <xsd:element ecore:ignore="true" name="ContinuousValueBetaDistribution" type="am:ContinuousValueBetaDistribution"/> |
| <xsd:element ecore:ignore="true" name="Mode" type="am:Mode"/> |
| <xsd:element ecore:ignore="true" name="NumericMode" type="am:NumericMode"/> |
| <xsd:element ecore:ignore="true" name="EnumMode" type="am:EnumMode"/> |
| <xsd:element ecore:ignore="true" name="ModeLiteral" type="am:ModeLiteral"/> |
| <xsd:element ecore:ignore="true" name="ComponentsModel" type="am:ComponentsModel"/> |
| <xsd:element ecore:ignore="true" name="IComponentContainer" type="am:IComponentContainer"/> |
| <xsd:element ecore:ignore="true" name="IInterfaceContainer" type="am:IInterfaceContainer"/> |
| <xsd:element ecore:ignore="true" name="ISystem" type="am:ISystem"/> |
| <xsd:element ecore:ignore="true" name="ComponentInterface" type="am:ComponentInterface"/> |
| <xsd:element ecore:ignore="true" name="MainInterface" type="am:MainInterface"/> |
| <xsd:element ecore:ignore="true" name="SubInterface" type="am:SubInterface"/> |
| <xsd:element ecore:ignore="true" name="ComponentPort" type="am:ComponentPort"/> |
| <xsd:element ecore:ignore="true" name="ComponentStructure" type="am:ComponentStructure"/> |
| <xsd:element ecore:ignore="true" name="IComponentStructureMember" type="am:IComponentStructureMember"/> |
| <xsd:element ecore:ignore="true" name="Component" type="am:Component"/> |
| <xsd:element ecore:ignore="true" name="Composite" type="am:Composite"/> |
| <xsd:element ecore:ignore="true" name="System" type="am:System"/> |
| <xsd:element ecore:ignore="true" name="ComponentInstance" type="am:ComponentInstance"/> |
| <xsd:element ecore:ignore="true" name="Connector" type="am:Connector"/> |
| <xsd:element ecore:ignore="true" name="InterfaceChannel" type="am:InterfaceChannel"/> |
| <xsd:element ecore:ignore="true" name="QualifiedPort" type="am:QualifiedPort"/> |
| <xsd:element ecore:ignore="true" name="ConfigModel" type="am:ConfigModel"/> |
| <xsd:element ecore:ignore="true" name="EventConfig" type="am:EventConfig"/> |
| <xsd:element ecore:ignore="true" name="ConstraintsModel" type="am:ConstraintsModel"/> |
| <xsd:element ecore:ignore="true" name="RunnableSequencingConstraint" type="am:RunnableSequencingConstraint"/> |
| <xsd:element ecore:ignore="true" name="AffinityConstraint" type="am:AffinityConstraint"/> |
| <xsd:element ecore:ignore="true" name="SeparationConstraint" type="am:SeparationConstraint"/> |
| <xsd:element ecore:ignore="true" name="PairingConstraint" type="am:PairingConstraint"/> |
| <xsd:element ecore:ignore="true" name="ProcessConstraint" type="am:ProcessConstraint"/> |
| <xsd:element ecore:ignore="true" name="RunnableConstraint" type="am:RunnableConstraint"/> |
| <xsd:element ecore:ignore="true" name="DataConstraint" type="am:DataConstraint"/> |
| <xsd:element ecore:ignore="true" name="RunnableSeparationConstraint" type="am:RunnableSeparationConstraint"/> |
| <xsd:element ecore:ignore="true" name="ProcessSeparationConstraint" type="am:ProcessSeparationConstraint"/> |
| <xsd:element ecore:ignore="true" name="DataSeparationConstraint" type="am:DataSeparationConstraint"/> |
| <xsd:element ecore:ignore="true" name="RunnablePairingConstraint" type="am:RunnablePairingConstraint"/> |
| <xsd:element ecore:ignore="true" name="ProcessPairingConstraint" type="am:ProcessPairingConstraint"/> |
| <xsd:element ecore:ignore="true" name="DataPairingConstraint" type="am:DataPairingConstraint"/> |
| <xsd:element ecore:ignore="true" name="RunnableConstraintTarget" type="am:RunnableConstraintTarget"/> |
| <xsd:element ecore:ignore="true" name="ProcessConstraintTarget" type="am:ProcessConstraintTarget"/> |
| <xsd:element ecore:ignore="true" name="DataConstraintTarget" type="am:DataConstraintTarget"/> |
| <xsd:element ecore:ignore="true" name="TargetMemory" type="am:TargetMemory"/> |
| <xsd:element ecore:ignore="true" name="TargetCore" type="am:TargetCore"/> |
| <xsd:element ecore:ignore="true" name="TargetScheduler" type="am:TargetScheduler"/> |
| <xsd:element ecore:ignore="true" name="LabelGroup" type="am:LabelGroup"/> |
| <xsd:element ecore:ignore="true" name="RunnableGroup" type="am:RunnableGroup"/> |
| <xsd:element ecore:ignore="true" name="ProcessGroup" type="am:ProcessGroup"/> |
| <xsd:element ecore:ignore="true" name="LabelEntityGroup" type="am:LabelEntityGroup"/> |
| <xsd:element ecore:ignore="true" name="RunnableEntityGroup" type="am:RunnableEntityGroup"/> |
| <xsd:element ecore:ignore="true" name="ProcessEntityGroup" type="am:ProcessEntityGroup"/> |
| <xsd:element ecore:ignore="true" name="TagGroup" type="am:TagGroup"/> |
| <xsd:element ecore:ignore="true" name="AbstractEventChain" type="am:AbstractEventChain"/> |
| <xsd:element ecore:ignore="true" name="EventChain" type="am:EventChain"/> |
| <xsd:element ecore:ignore="true" name="SubEventChain" type="am:SubEventChain"/> |
| <xsd:element ecore:ignore="true" name="EventChainItem" type="am:EventChainItem"/> |
| <xsd:element ecore:ignore="true" name="EventChainReference" type="am:EventChainReference"/> |
| <xsd:element ecore:ignore="true" name="EventChainContainer" type="am:EventChainContainer"/> |
| <xsd:element ecore:ignore="true" name="TimingConstraint" type="am:TimingConstraint"/> |
| <xsd:element ecore:ignore="true" name="PhysicalSectionConstraint" type="am:PhysicalSectionConstraint"/> |
| <xsd:element ecore:ignore="true" name="SynchronizationConstraint" type="am:SynchronizationConstraint"/> |
| <xsd:element ecore:ignore="true" name="EventSynchronizationConstraint" type="am:EventSynchronizationConstraint"/> |
| <xsd:element ecore:ignore="true" name="EventChainSynchronizationConstraint" type="am:EventChainSynchronizationConstraint"/> |
| <xsd:element ecore:ignore="true" name="DelayConstraint" type="am:DelayConstraint"/> |
| <xsd:element ecore:ignore="true" name="EventChainLatencyConstraint" type="am:EventChainLatencyConstraint"/> |
| <xsd:element ecore:ignore="true" name="RepetitionConstraint" type="am:RepetitionConstraint"/> |
| <xsd:element ecore:ignore="true" name="DataAgeConstraint" type="am:DataAgeConstraint"/> |
| <xsd:element ecore:ignore="true" name="DataAge" type="am:DataAge"/> |
| <xsd:element ecore:ignore="true" name="DataAgeCycle" type="am:DataAgeCycle"/> |
| <xsd:element ecore:ignore="true" name="DataAgeTime" type="am:DataAgeTime"/> |
| <xsd:element ecore:ignore="true" name="Requirement" type="am:Requirement"/> |
| <xsd:element ecore:ignore="true" name="ProcessRequirement" type="am:ProcessRequirement"/> |
| <xsd:element ecore:ignore="true" name="RunnableRequirement" type="am:RunnableRequirement"/> |
| <xsd:element ecore:ignore="true" name="ArchitectureRequirement" type="am:ArchitectureRequirement"/> |
| <xsd:element ecore:ignore="true" name="ProcessChainRequirement" type="am:ProcessChainRequirement"/> |
| <xsd:element ecore:ignore="true" name="RequirementLimit" type="am:RequirementLimit"/> |
| <xsd:element ecore:ignore="true" name="CPUPercentageRequirementLimit" type="am:CPUPercentageRequirementLimit"/> |
| <xsd:element ecore:ignore="true" name="FrequencyRequirementLimit" type="am:FrequencyRequirementLimit"/> |
| <xsd:element ecore:ignore="true" name="PercentageRequirementLimit" type="am:PercentageRequirementLimit"/> |
| <xsd:element ecore:ignore="true" name="CountRequirementLimit" type="am:CountRequirementLimit"/> |
| <xsd:element ecore:ignore="true" name="TimeRequirementLimit" type="am:TimeRequirementLimit"/> |
| <xsd:element ecore:ignore="true" name="DataCoherencyGroup" type="am:DataCoherencyGroup"/> |
| <xsd:element ecore:ignore="true" name="DataStabilityGroup" type="am:DataStabilityGroup"/> |
| <xsd:element ecore:ignore="true" name="DataGroupScope" type="am:DataGroupScope"/> |
| <xsd:element ecore:ignore="true" name="ProcessScope" type="am:ProcessScope"/> |
| <xsd:element ecore:ignore="true" name="RunnableScope" type="am:RunnableScope"/> |
| <xsd:element ecore:ignore="true" name="ComponentScope" type="am:ComponentScope"/> |
| <xsd:element ecore:ignore="true" name="EventModel" type="am:EventModel"/> |
| <xsd:element ecore:ignore="true" name="Event" type="am:Event"/> |
| <xsd:element ecore:ignore="true" name="EventSet" type="am:EventSet"/> |
| <xsd:element ecore:ignore="true" name="EntityEvent" type="am:EntityEvent"/> |
| <xsd:element ecore:ignore="true" name="TriggerEvent" type="am:TriggerEvent"/> |
| <xsd:element ecore:ignore="true" name="CustomEvent" type="am:CustomEvent"/> |
| <xsd:element ecore:ignore="true" name="StimulusEvent" type="am:StimulusEvent"/> |
| <xsd:element ecore:ignore="true" name="ProcessEvent" type="am:ProcessEvent"/> |
| <xsd:element ecore:ignore="true" name="ProcessChainEvent" type="am:ProcessChainEvent"/> |
| <xsd:element ecore:ignore="true" name="RunnableEvent" type="am:RunnableEvent"/> |
| <xsd:element ecore:ignore="true" name="LabelEvent" type="am:LabelEvent"/> |
| <xsd:element ecore:ignore="true" name="ChannelEvent" type="am:ChannelEvent"/> |
| <xsd:element ecore:ignore="true" name="SemaphoreEvent" type="am:SemaphoreEvent"/> |
| <xsd:element ecore:ignore="true" name="ComponentEvent" type="am:ComponentEvent"/> |
| <xsd:element ecore:ignore="true" name="HWModel" type="am:HWModel"/> |
| <xsd:element ecore:ignore="true" name="HwStructure" type="am:HwStructure"/> |
| <xsd:element ecore:ignore="true" name="HwModule" type="am:HwModule"/> |
| <xsd:element ecore:ignore="true" name="HwDomain" type="am:HwDomain"/> |
| <xsd:element ecore:ignore="true" name="FrequencyDomain" type="am:FrequencyDomain"/> |
| <xsd:element ecore:ignore="true" name="PowerDomain" type="am:PowerDomain"/> |
| <xsd:element ecore:ignore="true" name="ProcessingUnit" type="am:ProcessingUnit"/> |
| <xsd:element ecore:ignore="true" name="Memory" type="am:Memory"/> |
| <xsd:element ecore:ignore="true" name="Cache" type="am:Cache"/> |
| <xsd:element ecore:ignore="true" name="HwFeatureCategory" type="am:HwFeatureCategory"/> |
| <xsd:element ecore:ignore="true" name="HwFeature" type="am:HwFeature"/> |
| <xsd:element ecore:ignore="true" name="HwPort" type="am:HwPort"/> |
| <xsd:element ecore:ignore="true" name="ConnectionHandler" type="am:ConnectionHandler"/> |
| <xsd:element ecore:ignore="true" name="HwConnection" type="am:HwConnection"/> |
| <xsd:element ecore:ignore="true" name="HwAccessElement" type="am:HwAccessElement"/> |
| <xsd:element ecore:ignore="true" name="HwDefinition" type="am:HwDefinition"/> |
| <xsd:element ecore:ignore="true" name="ProcessingUnitDefinition" type="am:ProcessingUnitDefinition"/> |
| <xsd:element ecore:ignore="true" name="ConnectionHandlerDefinition" type="am:ConnectionHandlerDefinition"/> |
| <xsd:element ecore:ignore="true" name="MemoryDefinition" type="am:MemoryDefinition"/> |
| <xsd:element ecore:ignore="true" name="CacheDefinition" type="am:CacheDefinition"/> |
| <xsd:element ecore:ignore="true" name="HwPath" type="am:HwPath"/> |
| <xsd:element ecore:ignore="true" name="HwAccessPath" type="am:HwAccessPath"/> |
| <xsd:element ecore:ignore="true" name="HwPathElement" type="am:HwPathElement"/> |
| <xsd:element ecore:ignore="true" name="HwDestination" type="am:HwDestination"/> |
| <xsd:element ecore:ignore="true" name="MappingModel" type="am:MappingModel"/> |
| <xsd:element ecore:ignore="true" name="SchedulerAllocation" type="am:SchedulerAllocation"/> |
| <xsd:element ecore:ignore="true" name="TaskAllocation" type="am:TaskAllocation"/> |
| <xsd:element ecore:ignore="true" name="ISRAllocation" type="am:ISRAllocation"/> |
| <xsd:element ecore:ignore="true" name="RunnableAllocation" type="am:RunnableAllocation"/> |
| <xsd:element ecore:ignore="true" name="MemoryMapping" type="am:MemoryMapping"/> |
| <xsd:element ecore:ignore="true" name="PhysicalSectionMapping" type="am:PhysicalSectionMapping"/> |
| <xsd:element ecore:ignore="true" name="OSModel" type="am:OSModel"/> |
| <xsd:element ecore:ignore="true" name="OsDataConsistency" type="am:OsDataConsistency"/> |
| <xsd:element ecore:ignore="true" name="DataStability" type="am:DataStability"/> |
| <xsd:element ecore:ignore="true" name="NonAtomicDataCoherency" type="am:NonAtomicDataCoherency"/> |
| <xsd:element ecore:ignore="true" name="Semaphore" type="am:Semaphore"/> |
| <xsd:element ecore:ignore="true" name="Scheduler" type="am:Scheduler"/> |
| <xsd:element ecore:ignore="true" name="TaskScheduler" type="am:TaskScheduler"/> |
| <xsd:element ecore:ignore="true" name="SchedulerAssociation" type="am:SchedulerAssociation"/> |
| <xsd:element ecore:ignore="true" name="InterruptController" type="am:InterruptController"/> |
| <xsd:element ecore:ignore="true" name="SchedulingParameters" type="am:SchedulingParameters"/> |
| <xsd:element ecore:ignore="true" name="ParameterExtension" type="am:ParameterExtension"/> |
| <xsd:element ecore:ignore="true" name="Algorithm" type="am:Algorithm"/> |
| <xsd:element ecore:ignore="true" name="InterruptSchedulingAlgorithm" type="am:InterruptSchedulingAlgorithm"/> |
| <xsd:element ecore:ignore="true" name="TaskSchedulingAlgorithm" type="am:TaskSchedulingAlgorithm"/> |
| <xsd:element ecore:ignore="true" name="FixedPriority" type="am:FixedPriority"/> |
| <xsd:element ecore:ignore="true" name="FixedPriorityPreemptive" type="am:FixedPriorityPreemptive"/> |
| <xsd:element ecore:ignore="true" name="FixedPriorityPreemptiveWithBudgetEnforcement" type="am:FixedPriorityPreemptiveWithBudgetEnforcement"/> |
| <xsd:element ecore:ignore="true" name="OSEK" type="am:OSEK"/> |
| <xsd:element ecore:ignore="true" name="DeadlineMonotonic" type="am:DeadlineMonotonic"/> |
| <xsd:element ecore:ignore="true" name="RateMonotonic" type="am:RateMonotonic"/> |
| <xsd:element ecore:ignore="true" name="Pfair" type="am:Pfair"/> |
| <xsd:element ecore:ignore="true" name="PfairPD2" type="am:PfairPD2"/> |
| <xsd:element ecore:ignore="true" name="PartlyPFairPD2" type="am:PartlyPFairPD2"/> |
| <xsd:element ecore:ignore="true" name="EarlyReleaseFairPD2" type="am:EarlyReleaseFairPD2"/> |
| <xsd:element ecore:ignore="true" name="PartlyEarlyReleaseFairPD2" type="am:PartlyEarlyReleaseFairPD2"/> |
| <xsd:element ecore:ignore="true" name="DynamicPriority" type="am:DynamicPriority"/> |
| <xsd:element ecore:ignore="true" name="LeastLocalRemainingExecutionTimeFirst" type="am:LeastLocalRemainingExecutionTimeFirst"/> |
| <xsd:element ecore:ignore="true" name="EarliestDeadlineFirst" type="am:EarliestDeadlineFirst"/> |
| <xsd:element ecore:ignore="true" name="PriorityBasedRoundRobin" type="am:PriorityBasedRoundRobin"/> |
| <xsd:element ecore:ignore="true" name="ReservationBasedServer" type="am:ReservationBasedServer"/> |
| <xsd:element ecore:ignore="true" name="DeferrableServer" type="am:DeferrableServer"/> |
| <xsd:element ecore:ignore="true" name="PollingPeriodicServer" type="am:PollingPeriodicServer"/> |
| <xsd:element ecore:ignore="true" name="SporadicServer" type="am:SporadicServer"/> |
| <xsd:element ecore:ignore="true" name="ConstantBandwidthServer" type="am:ConstantBandwidthServer"/> |
| <xsd:element ecore:ignore="true" name="ConstantBandwidthServerWithCASH" type="am:ConstantBandwidthServerWithCASH"/> |
| <xsd:element ecore:ignore="true" name="Grouping" type="am:Grouping"/> |
| <xsd:element ecore:ignore="true" name="UserSpecificSchedulingAlgorithm" type="am:UserSpecificSchedulingAlgorithm"/> |
| <xsd:element ecore:ignore="true" name="PriorityBased" type="am:PriorityBased"/> |
| <xsd:element ecore:ignore="true" name="OperatingSystem" type="am:OperatingSystem"/> |
| <xsd:element ecore:ignore="true" name="VendorOperatingSystem" type="am:VendorOperatingSystem"/> |
| <xsd:element ecore:ignore="true" name="OsOverhead" type="am:OsOverhead"/> |
| <xsd:element ecore:ignore="true" name="OsAPIOverhead" type="am:OsAPIOverhead"/> |
| <xsd:element ecore:ignore="true" name="OsISROverhead" type="am:OsISROverhead"/> |
| <xsd:element ecore:ignore="true" name="PropertyConstraintsModel" type="am:PropertyConstraintsModel"/> |
| <xsd:element ecore:ignore="true" name="CoreAllocationConstraint" type="am:CoreAllocationConstraint"/> |
| <xsd:element ecore:ignore="true" name="MemoryMappingConstraint" type="am:MemoryMappingConstraint"/> |
| <xsd:element ecore:ignore="true" name="ProcessAllocationConstraint" type="am:ProcessAllocationConstraint"/> |
| <xsd:element ecore:ignore="true" name="ProcessPrototypeAllocationConstraint" type="am:ProcessPrototypeAllocationConstraint"/> |
| <xsd:element ecore:ignore="true" name="RunnableAllocationConstraint" type="am:RunnableAllocationConstraint"/> |
| <xsd:element ecore:ignore="true" name="AbstractElementMappingConstraint" type="am:AbstractElementMappingConstraint"/> |
| <xsd:element ecore:ignore="true" name="Classification" type="am:Classification"/> |
| <xsd:element ecore:ignore="true" name="CoreClassification" type="am:CoreClassification"/> |
| <xsd:element ecore:ignore="true" name="MemoryClassification" type="am:MemoryClassification"/> |
| <xsd:element ecore:ignore="true" name="StimuliModel" type="am:StimuliModel"/> |
| <xsd:element ecore:ignore="true" name="Stimulus" type="am:Stimulus"/> |
| <xsd:element ecore:ignore="true" name="ModeValueList" type="am:ModeValueList"/> |
| <xsd:element ecore:ignore="true" name="ModeValueMapEntry" type="am:ModeValueMapEntry"/> |
| <xsd:element ecore:ignore="true" name="ModeValue" type="am:ModeValue"/> |
| <xsd:element ecore:ignore="true" name="ModeAssignment" type="am:ModeAssignment"/> |
| <xsd:element ecore:ignore="true" name="ModeConditionDisjunction" type="am:ModeConditionDisjunction"/> |
| <xsd:element ecore:ignore="true" name="ModeConditionDisjunctionEntry" type="am:ModeConditionDisjunctionEntry"/> |
| <xsd:element ecore:ignore="true" name="ModeCondition" type="am:ModeCondition"/> |
| <xsd:element ecore:ignore="true" name="ModeValueCondition" type="am:ModeValueCondition"/> |
| <xsd:element ecore:ignore="true" name="ModeLabelCondition" type="am:ModeLabelCondition"/> |
| <xsd:element ecore:ignore="true" name="ModeConditionConjunction" type="am:ModeConditionConjunction"/> |
| <xsd:element ecore:ignore="true" name="FixedPeriodic" type="am:FixedPeriodic"/> |
| <xsd:element ecore:ignore="true" name="PeriodicStimulus" type="am:PeriodicStimulus"/> |
| <xsd:element ecore:ignore="true" name="RelativePeriodicStimulus" type="am:RelativePeriodicStimulus"/> |
| <xsd:element ecore:ignore="true" name="VariableRateStimulus" type="am:VariableRateStimulus"/> |
| <xsd:element ecore:ignore="true" name="Scenario" type="am:Scenario"/> |
| <xsd:element ecore:ignore="true" name="PeriodicSyntheticStimulus" type="am:PeriodicSyntheticStimulus"/> |
| <xsd:element ecore:ignore="true" name="CustomStimulus" type="am:CustomStimulus"/> |
| <xsd:element ecore:ignore="true" name="SingleStimulus" type="am:SingleStimulus"/> |
| <xsd:element ecore:ignore="true" name="InterProcessStimulus" type="am:InterProcessStimulus"/> |
| <xsd:element ecore:ignore="true" name="PeriodicBurstStimulus" type="am:PeriodicBurstStimulus"/> |
| <xsd:element ecore:ignore="true" name="EventStimulus" type="am:EventStimulus"/> |
| <xsd:element ecore:ignore="true" name="ArrivalCurveStimulus" type="am:ArrivalCurveStimulus"/> |
| <xsd:element ecore:ignore="true" name="ArrivalCurveEntry" type="am:ArrivalCurveEntry"/> |
| <xsd:element ecore:ignore="true" name="Clock" type="am:Clock"/> |
| <xsd:element ecore:ignore="true" name="ClockFunction" type="am:ClockFunction"/> |
| <xsd:element ecore:ignore="true" name="ClockStepList" type="am:ClockStepList"/> |
| <xsd:element ecore:ignore="true" name="ClockStep" type="am:ClockStep"/> |
| <xsd:element ecore:ignore="true" name="SWModel" type="am:SWModel"/> |
| <xsd:element ecore:ignore="true" name="AbstractMemoryElement" type="am:AbstractMemoryElement"/> |
| <xsd:element ecore:ignore="true" name="AbstractProcess" type="am:AbstractProcess"/> |
| <xsd:element ecore:ignore="true" name="CustomEntity" type="am:CustomEntity"/> |
| <xsd:element ecore:ignore="true" name="ProcessChain" type="am:ProcessChain"/> |
| <xsd:element ecore:ignore="true" name="Process" type="am:Process"/> |
| <xsd:element ecore:ignore="true" name="IActivityGraphItemContainer" type="am:IActivityGraphItemContainer"/> |
| <xsd:element ecore:ignore="true" name="ActivityGraph" type="am:ActivityGraph"/> |
| <xsd:element ecore:ignore="true" name="ActivityGraphItem" type="am:ActivityGraphItem"/> |
| <xsd:element ecore:ignore="true" name="ModeSwitch" type="am:ModeSwitch"/> |
| <xsd:element ecore:ignore="true" name="ModeSwitchEntry" type="am:ModeSwitchEntry"/> |
| <xsd:element ecore:ignore="true" name="ModeSwitchDefault" type="am:ModeSwitchDefault"/> |
| <xsd:element ecore:ignore="true" name="ProbabilitySwitch" type="am:ProbabilitySwitch"/> |
| <xsd:element ecore:ignore="true" name="ProbabilitySwitchEntry" type="am:ProbabilitySwitchEntry"/> |
| <xsd:element ecore:ignore="true" name="Counter" type="am:Counter"/> |
| <xsd:element ecore:ignore="true" name="WaitEvent" type="am:WaitEvent"/> |
| <xsd:element ecore:ignore="true" name="SetEvent" type="am:SetEvent"/> |
| <xsd:element ecore:ignore="true" name="ClearEvent" type="am:ClearEvent"/> |
| <xsd:element ecore:ignore="true" name="EventMask" type="am:EventMask"/> |
| <xsd:element ecore:ignore="true" name="OsEvent" type="am:OsEvent"/> |
| <xsd:element ecore:ignore="true" name="InterProcessTrigger" type="am:InterProcessTrigger"/> |
| <xsd:element ecore:ignore="true" name="EnforcedMigration" type="am:EnforcedMigration"/> |
| <xsd:element ecore:ignore="true" name="SchedulePoint" type="am:SchedulePoint"/> |
| <xsd:element ecore:ignore="true" name="TerminateProcess" type="am:TerminateProcess"/> |
| <xsd:element ecore:ignore="true" name="Task" type="am:Task"/> |
| <xsd:element ecore:ignore="true" name="ISR" type="am:ISR"/> |
| <xsd:element ecore:ignore="true" name="ProcessPrototype" type="am:ProcessPrototype"/> |
| <xsd:element ecore:ignore="true" name="ChainedProcessPrototype" type="am:ChainedProcessPrototype"/> |
| <xsd:element ecore:ignore="true" name="GeneralPrecedence" type="am:GeneralPrecedence"/> |
| <xsd:element ecore:ignore="true" name="AccessPrecedenceSpec" type="am:AccessPrecedenceSpec"/> |
| <xsd:element ecore:ignore="true" name="OrderPrecedenceSpec" type="am:OrderPrecedenceSpec"/> |
| <xsd:element ecore:ignore="true" name="IDependsOn" type="am:IDependsOn"/> |
| <xsd:element ecore:ignore="true" name="DataDependency" type="am:DataDependency"/> |
| <xsd:element ecore:ignore="true" name="RunnableParameter" type="am:RunnableParameter"/> |
| <xsd:element ecore:ignore="true" name="Runnable" type="am:Runnable"/> |
| <xsd:element ecore:ignore="true" name="Label" type="am:Label"/> |
| <xsd:element ecore:ignore="true" name="Channel" type="am:Channel"/> |
| <xsd:element ecore:ignore="true" name="ModeLabel" type="am:ModeLabel"/> |
| <xsd:element ecore:ignore="true" name="Section" type="am:Section"/> |
| <xsd:element ecore:ignore="true" name="ComputationItem" type="am:ComputationItem"/> |
| <xsd:element ecore:ignore="true" name="ExecutionNeed" type="am:ExecutionNeed"/> |
| <xsd:element ecore:ignore="true" name="NeedEntry" type="am:NeedEntry"/> |
| <xsd:element ecore:ignore="true" name="Ticks" type="am:Ticks"/> |
| <xsd:element ecore:ignore="true" name="TicksEntry" type="am:TicksEntry"/> |
| <xsd:element ecore:ignore="true" name="ModeLabelAccess" type="am:ModeLabelAccess"/> |
| <xsd:element ecore:ignore="true" name="LabelAccess" type="am:LabelAccess"/> |
| <xsd:element ecore:ignore="true" name="ChannelAccess" type="am:ChannelAccess"/> |
| <xsd:element ecore:ignore="true" name="ChannelSend" type="am:ChannelSend"/> |
| <xsd:element ecore:ignore="true" name="ChannelReceive" type="am:ChannelReceive"/> |
| <xsd:element ecore:ignore="true" name="SemaphoreAccess" type="am:SemaphoreAccess"/> |
| <xsd:element ecore:ignore="true" name="SenderReceiverCommunication" type="am:SenderReceiverCommunication"/> |
| <xsd:element ecore:ignore="true" name="SenderReceiverRead" type="am:SenderReceiverRead"/> |
| <xsd:element ecore:ignore="true" name="SenderReceiverWrite" type="am:SenderReceiverWrite"/> |
| <xsd:element ecore:ignore="true" name="ServerCall" type="am:ServerCall"/> |
| <xsd:element ecore:ignore="true" name="SynchronousServerCall" type="am:SynchronousServerCall"/> |
| <xsd:element ecore:ignore="true" name="AsynchronousServerCall" type="am:AsynchronousServerCall"/> |
| <xsd:element ecore:ignore="true" name="GetResultServerCall" type="am:GetResultServerCall"/> |
| <xsd:element ecore:ignore="true" name="Group" type="am:Group"/> |
| <xsd:element ecore:ignore="true" name="CallArgument" type="am:CallArgument"/> |
| <xsd:element ecore:ignore="true" name="RunnableCall" type="am:RunnableCall"/> |
| <xsd:element ecore:ignore="true" name="CustomEventTrigger" type="am:CustomEventTrigger"/> |
| <xsd:element ecore:ignore="true" name="DataType" type="am:DataType"/> |
| <xsd:element ecore:ignore="true" name="CompoundType" type="am:CompoundType"/> |
| <xsd:element ecore:ignore="true" name="Struct" type="am:Struct"/> |
| <xsd:element ecore:ignore="true" name="StructEntry" type="am:StructEntry"/> |
| <xsd:element ecore:ignore="true" name="Array" type="am:Array"/> |
| <xsd:element ecore:ignore="true" name="Pointer" type="am:Pointer"/> |
| <xsd:element ecore:ignore="true" name="TypeRef" type="am:TypeRef"/> |
| <xsd:element ecore:ignore="true" name="Alias" type="am:Alias"/> |
| <xsd:element ecore:ignore="true" name="TypeDefinition" type="am:TypeDefinition"/> |
| <xsd:element ecore:ignore="true" name="DataTypeDefinition" type="am:DataTypeDefinition"/> |
| <xsd:element ecore:ignore="true" name="BaseTypeDefinition" type="am:BaseTypeDefinition"/> |
| <xsd:element ecore:ignore="true" name="Activation" type="am:Activation"/> |
| <xsd:element ecore:ignore="true" name="PeriodicActivation" type="am:PeriodicActivation"/> |
| <xsd:element ecore:ignore="true" name="VariableRateActivation" type="am:VariableRateActivation"/> |
| <xsd:element ecore:ignore="true" name="SporadicActivation" type="am:SporadicActivation"/> |
| <xsd:element ecore:ignore="true" name="SingleActivation" type="am:SingleActivation"/> |
| <xsd:element ecore:ignore="true" name="EventActivation" type="am:EventActivation"/> |
| <xsd:element ecore:ignore="true" name="CustomActivation" type="am:CustomActivation"/> |
| <xsd:element ecore:ignore="true" name="LabelAccessStatistic" type="am:LabelAccessStatistic"/> |
| <xsd:element ecore:ignore="true" name="RunEntityCallStatistic" type="am:RunEntityCallStatistic"/> |
| <xsd:complexType name="Amalthea"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="commonElements" type="am:CommonElements"/> |
| <xsd:element minOccurs="0" name="swModel" type="am:SWModel"/> |
| <xsd:element minOccurs="0" name="hwModel" type="am:HWModel"/> |
| <xsd:element minOccurs="0" name="osModel" type="am:OSModel"/> |
| <xsd:element minOccurs="0" name="stimuliModel" type="am:StimuliModel"/> |
| <xsd:element minOccurs="0" name="eventModel" type="am:EventModel"/> |
| <xsd:element minOccurs="0" name="constraintsModel" type="am:ConstraintsModel"/> |
| <xsd:element minOccurs="0" name="propertyConstraintsModel" type="am:PropertyConstraintsModel"/> |
| <xsd:element minOccurs="0" name="mappingModel" type="am:MappingModel"/> |
| <xsd:element minOccurs="0" name="componentsModel" type="am:ComponentsModel"/> |
| <xsd:element minOccurs="0" name="configModel" type="am:ConfigModel"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:transient="true" ecore:volatile="true" name="version" type="ecore:EString"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="CommonElements"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="tags" type="am:Tag"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="namespaces" type="am:Namespace"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="coreClassifiers" type="am:CoreClassifier"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="memoryClassifiers" type="am:MemoryClassifier"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="BaseObject"> |
| <xsd:annotation> |
| <xsd:documentation>Base classes to be used to provide common functionality for all objects. |
| Needs to be extended by other classes.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:IAnnotatable"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="ReferableObject"> |
| <xsd:complexContent> |
| <xsd:extension base="am:IReferable"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:IReferable" name="ReferableBaseObject"> |
| <xsd:complexContent> |
| <xsd:extension base="am:IAnnotatable"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="IAnnotatable"> |
| <xsd:annotation> |
| <xsd:documentation>IAnnotatable: Possibility to store custom properties on elements</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="customProperties" type="am:CustomProperty"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="ITaggable"> |
| <xsd:annotation> |
| <xsd:documentation>ITaggable: Possibility to add tags to an elements</xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute ecore:reference="am:Tag" name="tags"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="INamed"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getNamedContainer" type="am:INamed" unique="false"> |
| <body><%org.eclipse.app4mc.amalthea.model.INamed%> _xifexpression = null; |
| <%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer(); |
| if ((_eContainer instanceof <%org.eclipse.app4mc.amalthea.model.INamed%>)) |
| { |
| <%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer(); |
| _xifexpression = ((<%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer_1); |
| } |
| else |
| { |
| _xifexpression = null; |
| } |
| return _xifexpression;</body> |
| </operation> |
| <operation name="getNamePrefix" type="ecore:EString" unique="false"> |
| <body><%java.lang.String%> _xifexpression = null; |
| <%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace(); |
| boolean _tripleEquals = (_namespace == null); |
| if (_tripleEquals) |
| { |
| return ""; |
| } |
| else |
| { |
| _xifexpression = <%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator()); |
| } |
| return _xifexpression;</body> |
| </operation> |
| <operation name="getQualifiedNameSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <body>final <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> segments = this.getNamePrefixSegments(); |
| <%java.lang.String%> _name = this.getName(); |
| boolean _tripleNotEquals = (_name != null); |
| if (_tripleNotEquals) |
| { |
| segments.add(this.getName()); |
| } |
| return segments;</body> |
| </operation> |
| <operation name="getDefaultNameSeparator" type="ecore:EString" unique="false"> |
| <annotation source="http://www.eclipse.org/emf/2002/GenModel"> |
| <detail key="documentation">Overwrite this method to define a specific name separator.</detail> |
| </annotation> |
| <body>return ".";</body> |
| </operation> |
| <operation name="getNamespace" type="am:Namespace" unique="false"> |
| <body>return null;</body> |
| </operation> |
| <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <annotation source="http://www.eclipse.org/emf/2002/GenModel"> |
| <detail key="documentation">Overwrite this method to define a specific prefix (used by name-based references).</detail> |
| </annotation> |
| <body><%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _elvis = null; |
| <%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace(); |
| <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _qualifiedNameSegments = null; |
| if (_namespace!=null) |
| { |
| _qualifiedNameSegments=_namespace.getQualifiedNameSegments(); |
| } |
| if (_qualifiedNameSegments != null) |
| { |
| _elvis = _qualifiedNameSegments; |
| } else |
| { |
| <%org.eclipse.emf.common.util.BasicEList%><<%java.lang.String%>> _newBasicEList = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList(); |
| _elvis = _newBasicEList; |
| } |
| return _elvis;</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>INamed: Name attribute</xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute default="" ecore:unsettable="false" name="name" type="ecore:EString"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:transient="true" ecore:volatile="true" name="qualifiedName" type="ecore:EString"/> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="IReferable"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getEncodedQualifiedName" type="ecore:EString" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toEncodedString(this.getQualifiedNameSegments());</body> |
| </operation> |
| <operation name="validateInvariants" type="ecore:EBoolean" unique="false"> |
| <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/> |
| <parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>IReferable: Computed ID for name based references</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:INamed"> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:id="true" ecore:transient="true" ecore:volatile="true" name="uniqueName" type="ecore:EString"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="IDisplayName"> |
| <xsd:attribute name="displayName" type="ecore:EString"/> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="IDescription"> |
| <xsd:attribute name="description" type="ecore:EString"/> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="INamespaceMember"> |
| <xsd:attribute ecore:reference="am:Namespace" name="namespace" type="xsd:anyURI"/> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IDescription" name="Tag"> |
| <xsd:annotation> |
| <xsd:documentation>A tag for processes, runnables, events and labels</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute name="tagType" type="ecore:EString"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:ITaggable" ecore:transient="true" ecore:volatile="true" name="taggedObjects"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of objects (ITaggable) referring to this tag. |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="Namespace"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <body><%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _elvis = null; |
| <%org.eclipse.app4mc.amalthea.model.Namespace%> _previousSegment = this.getPreviousSegment(); |
| <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _qualifiedNameSegments = null; |
| if (_previousSegment!=null) |
| { |
| _qualifiedNameSegments=_previousSegment.getQualifiedNameSegments(); |
| } |
| if (_qualifiedNameSegments != null) |
| { |
| _elvis = _qualifiedNameSegments; |
| } else |
| { |
| <%org.eclipse.emf.common.util.BasicEList%><<%java.lang.String%>> _newBasicEList = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList(); |
| _elvis = _newBasicEList; |
| } |
| return _elvis;</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableObject"> |
| <xsd:sequence> |
| <xsd:element ecore:opposite="previousSegment" maxOccurs="unbounded" minOccurs="0" name="nextSegments" type="am:Namespace"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:changeable="false" ecore:opposite="nextSegments" ecore:reference="am:Namespace" name="previousSegment" type="xsd:anyURI"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:INamespaceMember" ecore:transient="true" ecore:volatile="true" name="memberObjects"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of objects (INamespaceMember) referring to this namespace. |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="RelationalOperator"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="EQUAL"/> |
| <xsd:enumeration ecore:value="0" value="NOT_EQUAL"/> |
| <xsd:enumeration ecore:value="0" value="LESS_THAN"/> |
| <xsd:enumeration ecore:value="0" value="GREATER_THAN"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType abstract="true" ecore:implements="am:IDescription" name="Classifier"> |
| <xsd:annotation> |
| <xsd:documentation>Classifiers for hardware properties</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="CoreClassifier"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Classifier"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="MemoryClassifier"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Classifier"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TransmissionPolicy"> |
| <xsd:annotation> |
| <xsd:documentation>Data transmission details for communication (e.g. LabelAccesses)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="chunkSize" type="am:DataSize"/> |
| </xsd:sequence> |
| <xsd:attribute default="0" ecore:unsettable="false" name="chunkProcessingTicks" type="ecore:EInt"/> |
| <xsd:attribute default="1.0" ecore:unsettable="false" name="transmitRatio" type="ecore:EDouble"/> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="Quantity"> |
| <xsd:annotation> |
| <xsd:documentation>Abstract class for Quantities (value + unit)</xsd:documentation> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:simpleType name="TimeUnit"> |
| <xsd:annotation> |
| <xsd:documentation>Time units (enumeration of available units)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="s"/> |
| <xsd:enumeration ecore:value="0" value="ms"/> |
| <xsd:enumeration ecore:value="0" value="us"/> |
| <xsd:enumeration ecore:value="0" value="ns"/> |
| <xsd:enumeration ecore:value="0" value="ps"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType abstract="true" ecore:instanceClass="java.lang.Comparable{org.eclipse.app4mc.amalthea.model.Time}" ecore:interface="true" name="TimeComparable"/> |
| <xsd:complexType ecore:implements="am:Value am:TimeComparable" name="Time"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="toString" type="ecore:EString" unique="false"> |
| <body><%java.math.BigInteger%> _value = this.getValue(); |
| <%java.lang.String%> _plus = (_value + " "); |
| <%java.lang.String%> _xifexpression = null; |
| <%org.eclipse.app4mc.amalthea.model.TimeUnit%> _unit = this.getUnit(); |
| boolean _equals = <%com.google.common.base.Objects%>.equal(_unit, <%org.eclipse.app4mc.amalthea.model.TimeUnit%>._UNDEFINED_); |
| if (_equals) |
| { |
| _xifexpression = "<unit>"; |
| } |
| else |
| { |
| _xifexpression = this.getUnit().getLiteral(); |
| } |
| return (_plus + _xifexpression);</body> |
| </operation> |
| <operation name="compareTo" type="ecore:EInt" unique="false"> |
| <parameter name="t" type="am:Time" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.compareTimes(this, t);</body> |
| </operation> |
| <operation name="adjustUnit" type="am:Time" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.adjustTimeUnit(this);</body> |
| </operation> |
| <operation name="add" type="am:Time" unique="false"> |
| <parameter name="t" type="am:Time" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.addTime(this, t);</body> |
| </operation> |
| <operation name="subtract" type="am:Time" unique="false"> |
| <parameter name="t" type="am:Time" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.subtractTime(this, t);</body> |
| </operation> |
| <operation name="multiply" type="am:Time" unique="false"> |
| <parameter name="v" type="ecore:ELong" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.multiply(this, v);</body> |
| </operation> |
| <operation name="multiply" type="am:Time" unique="false"> |
| <parameter name="v" type="ecore:EDouble" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.multiply(this, v);</body> |
| </operation> |
| <operation name="divide" type="ecore:EDouble" unique="false"> |
| <parameter name="t" type="am:Time" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.divideTime(this, t);</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>General time class to define time value and unit.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Quantity"> |
| <xsd:attribute default="0" ecore:unsettable="false" name="value" type="ecore:EBigInteger"/> |
| <xsd:attribute ecore:unsettable="false" name="unit" type="am:TimeUnit"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="FrequencyUnit"> |
| <xsd:annotation> |
| <xsd:documentation>Frequency units (enumeration of available units)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="Hz"/> |
| <xsd:enumeration ecore:value="0" value="kHz"/> |
| <xsd:enumeration ecore:value="0" value="MHz"/> |
| <xsd:enumeration ecore:value="0" value="GHz"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="Frequency"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="toString" type="ecore:EString" unique="false"> |
| <body>double _value = this.getValue(); |
| <%java.lang.String%> _plus = (<%java.lang.Double%>.valueOf(_value) + " "); |
| <%java.lang.String%> _xifexpression = null; |
| <%org.eclipse.app4mc.amalthea.model.FrequencyUnit%> _unit = this.getUnit(); |
| boolean _equals = <%com.google.common.base.Objects%>.equal(_unit, <%org.eclipse.app4mc.amalthea.model.FrequencyUnit%>._UNDEFINED_); |
| if (_equals) |
| { |
| _xifexpression = "<unit>"; |
| } |
| else |
| { |
| _xifexpression = this.getUnit().getLiteral(); |
| } |
| return (_plus + _xifexpression);</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>General frequency class to define frequency value and unit</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Quantity"> |
| <xsd:attribute default="0.0" ecore:unsettable="false" name="value" type="am:NonNegativeDouble"/> |
| <xsd:attribute ecore:unsettable="false" name="unit" type="am:FrequencyUnit"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="VoltageUnit"> |
| <xsd:annotation> |
| <xsd:documentation>Voltage units (enumeration of available units)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="uV"/> |
| <xsd:enumeration ecore:value="0" value="mV"/> |
| <xsd:enumeration ecore:value="0" value="V"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="Voltage"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="toString" type="ecore:EString" unique="false"> |
| <body>double _value = this.getValue(); |
| <%java.lang.String%> _plus = (<%java.lang.Double%>.valueOf(_value) + " "); |
| <%java.lang.String%> _xifexpression = null; |
| <%org.eclipse.app4mc.amalthea.model.VoltageUnit%> _unit = this.getUnit(); |
| boolean _equals = <%com.google.common.base.Objects%>.equal(_unit, <%org.eclipse.app4mc.amalthea.model.VoltageUnit%>._UNDEFINED_); |
| if (_equals) |
| { |
| _xifexpression = "<unit>"; |
| } |
| else |
| { |
| _xifexpression = this.getUnit().getLiteral(); |
| } |
| return (_plus + _xifexpression);</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>General voltage class to define voltage value and unit</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Quantity"> |
| <xsd:attribute default="0.0" ecore:unsettable="false" name="value" type="ecore:EDouble"/> |
| <xsd:attribute ecore:unsettable="false" name="unit" type="am:VoltageUnit"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="DataSizeUnit"> |
| <xsd:annotation> |
| <xsd:documentation>Data size units (enumeration of available units)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="bit"/> |
| <xsd:enumeration ecore:value="0" value="kbit"/> |
| <xsd:enumeration ecore:value="0" value="Mbit"/> |
| <xsd:enumeration ecore:value="0" value="Gbit"/> |
| <xsd:enumeration ecore:value="0" value="Tbit"/> |
| <xsd:enumeration ecore:value="0" value="Kibit"/> |
| <xsd:enumeration ecore:value="0" value="Mibit"/> |
| <xsd:enumeration ecore:value="0" value="Gibit"/> |
| <xsd:enumeration ecore:value="0" value="Tibit"/> |
| <xsd:enumeration ecore:value="0" value="B"/> |
| <xsd:enumeration ecore:value="0" value="kB"/> |
| <xsd:enumeration ecore:value="0" value="MB"/> |
| <xsd:enumeration ecore:value="0" value="GB"/> |
| <xsd:enumeration ecore:value="0" value="TB"/> |
| <xsd:enumeration ecore:value="0" value="KiB"/> |
| <xsd:enumeration ecore:value="0" value="MiB"/> |
| <xsd:enumeration ecore:value="0" value="GiB"/> |
| <xsd:enumeration ecore:value="0" value="TiB"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="DataSize"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="toString" type="ecore:EString" unique="false"> |
| <body><%java.math.BigInteger%> _value = this.getValue(); |
| <%java.lang.String%> _plus = (_value + " "); |
| <%java.lang.String%> _xifexpression = null; |
| <%org.eclipse.app4mc.amalthea.model.DataSizeUnit%> _unit = this.getUnit(); |
| boolean _equals = <%com.google.common.base.Objects%>.equal(_unit, <%org.eclipse.app4mc.amalthea.model.DataSizeUnit%>._UNDEFINED_); |
| if (_equals) |
| { |
| _xifexpression = "<unit>"; |
| } |
| else |
| { |
| _xifexpression = this.getUnit().getLiteral(); |
| } |
| return (_plus + _xifexpression);</body> |
| </operation> |
| <operation name="getNumberBits" type="ecore:ELong" unique="false"> |
| <annotation source="http://www.eclipse.org/emf/2002/GenModel"> |
| <detail key="documentation">Convenience methods to retrieve the size in Bits and Bytes</detail> |
| </annotation> |
| <body>long _xblockexpression = (long) 0; |
| { |
| <%org.eclipse.app4mc.amalthea.model.DataSizeUnit%> _unit = this.getUnit(); |
| boolean _tripleEquals = (_unit == <%org.eclipse.app4mc.amalthea.model.DataSizeUnit%>.BIT); |
| if (_tripleEquals) |
| { |
| return this.getValue().longValue(); |
| } |
| final <%java.math.BigInteger%> bits = <%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.convertToBit(this); |
| long _xifexpression = (long) 0; |
| if ((bits == null)) |
| { |
| _xifexpression = (-1L); |
| } |
| else |
| { |
| _xifexpression = bits.longValue(); |
| } |
| _xblockexpression = _xifexpression; |
| } |
| return _xblockexpression;</body> |
| </operation> |
| <operation name="getNumberBytes" type="ecore:ELong" unique="false"> |
| <body>long _xblockexpression = (long) 0; |
| { |
| <%org.eclipse.app4mc.amalthea.model.DataSizeUnit%> _unit = this.getUnit(); |
| boolean _tripleEquals = (_unit == <%org.eclipse.app4mc.amalthea.model.DataSizeUnit%>.B); |
| if (_tripleEquals) |
| { |
| return this.getValue().longValue(); |
| } |
| final <%java.math.BigInteger%> bits = <%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.convertToBit(this); |
| long _xifexpression = (long) 0; |
| if ((bits == null)) |
| { |
| _xifexpression = (-1L); |
| } |
| else |
| { |
| long _longValue = bits.longValue(); |
| long _divide = (_longValue / 8); |
| _xifexpression = <%java.lang.Double%>.valueOf(<%java.lang.Math%>.ceil(_divide)).longValue(); |
| } |
| _xblockexpression = _xifexpression; |
| } |
| return _xblockexpression;</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>General data size class to define size (value and unit)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Quantity"> |
| <xsd:attribute default="0" ecore:unsettable="false" name="value" type="ecore:EBigInteger"/> |
| <xsd:attribute ecore:unsettable="false" name="unit" type="am:DataSizeUnit"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="DataRateUnit"> |
| <xsd:annotation> |
| <xsd:documentation>Data rate units (enumeration of available units)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="bitPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="kbitPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="MbitPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="GbitPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="TbitPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="KibitPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="MibitPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="GibitPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="TibitPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="BPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="kBPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="MBPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="GBPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="TBPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="KiBPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="MiBPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="GiBPerSecond"/> |
| <xsd:enumeration ecore:value="0" value="TiBPerSecond"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType abstract="true" ecore:instanceClass="java.lang.Comparable{org.eclipse.app4mc.amalthea.model.DataRate}" ecore:interface="true" name="DataRateComparable"/> |
| <xsd:complexType ecore:implements="am:DataRateComparable" name="DataRate"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="toString" type="ecore:EString" unique="false"> |
| <body><%java.math.BigInteger%> _value = this.getValue(); |
| <%java.lang.String%> _plus = (_value + " "); |
| <%java.lang.String%> _xifexpression = null; |
| <%org.eclipse.app4mc.amalthea.model.DataRateUnit%> _unit = this.getUnit(); |
| boolean _equals = <%com.google.common.base.Objects%>.equal(_unit, <%org.eclipse.app4mc.amalthea.model.DataRateUnit%>._UNDEFINED_); |
| if (_equals) |
| { |
| _xifexpression = "<unit>"; |
| } |
| else |
| { |
| _xifexpression = this.getUnit().getLiteral().replace("PerSecond", "/s"); |
| } |
| return (_plus + _xifexpression);</body> |
| </operation> |
| <operation name="compareTo" type="ecore:EInt" unique="false"> |
| <parameter name="rate" type="am:DataRate" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.compareDataRates(this, rate);</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>General data rate class to define rate (value and unit)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Quantity"> |
| <xsd:attribute default="0" ecore:unsettable="false" name="value" type="ecore:EBigInteger"/> |
| <xsd:attribute ecore:unsettable="false" name="unit" type="am:DataRateUnit"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="CustomProperty"> |
| <xsd:annotation> |
| <xsd:documentation>custom property container for map</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="value" type="am:Value"/> |
| </xsd:sequence> |
| <xsd:attribute name="key" type="ecore:EString" use="required"/> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="Value"> |
| <xsd:annotation> |
| <xsd:documentation>Abstract generalization of a value entry.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType name="ListObject"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Value"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="values" type="am:Value"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="StringObject"> |
| <xsd:annotation> |
| <xsd:documentation>Object for using the elementary datatype String as generic parameter</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Value"> |
| <xsd:attribute name="value" type="ecore:EString" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="BigIntegerObject"> |
| <xsd:annotation> |
| <xsd:documentation>Object for using the elementary datatype String as generic parameter</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Value"> |
| <xsd:attribute ecore:default="0" ecore:unsettable="false" name="value" type="ecore:EBigInteger" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ReferenceObject"> |
| <xsd:annotation> |
| <xsd:documentation>Object for using object reference as generic parameter</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Value"> |
| <xsd:attribute ecore:reference="am:IReferable" name="value" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="IntegerObject"> |
| <xsd:annotation> |
| <xsd:documentation>Object for using the elementary datatype integer as generic parameter</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Value"> |
| <xsd:attribute ecore:default="0" ecore:unsettable="false" name="value" type="ecore:EInt" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="LongObject"> |
| <xsd:annotation> |
| <xsd:documentation>Object for using the elementary datatype long as generic parameter</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Value"> |
| <xsd:attribute ecore:default="0" ecore:unsettable="false" name="value" type="ecore:ELong" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="FloatObject"> |
| <xsd:annotation> |
| <xsd:documentation>Object for using the elementary datatype float as generic parameter</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Value"> |
| <xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="value" type="ecore:EFloat" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DoubleObject"> |
| <xsd:annotation> |
| <xsd:documentation>Object for using the elementary datatype double as generic parameter</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Value"> |
| <xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="value" type="ecore:EDouble" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="BooleanObject"> |
| <xsd:annotation> |
| <xsd:documentation>Object for using the elementary datatype boolean as generic parameter</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Value"> |
| <xsd:attribute ecore:default="false" ecore:unsettable="false" name="value" type="ecore:EBoolean" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="NumericStatistic"/> |
| <xsd:complexType name="MinAvgMaxStatistic"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="validateInvariants" type="ecore:EBoolean" unique="false"> |
| <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/> |
| <parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>Statistic to provide capabilities for min, max and avg</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:NumericStatistic"> |
| <xsd:attribute default="0" ecore:unsettable="false" name="min" type="ecore:EInt"/> |
| <xsd:attribute default="0f" ecore:unsettable="false" name="avg" type="ecore:EFloat"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="max" type="ecore:EInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SingleValueStatistic"> |
| <xsd:complexContent> |
| <xsd:extension base="am:NumericStatistic"> |
| <xsd:attribute default="0f" ecore:unsettable="false" name="value" type="ecore:EFloat"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="SamplingType"> |
| <xsd:annotation> |
| <xsd:documentation>The types of sampling</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="default"/> |
| <xsd:enumeration ecore:value="0" value="BestCase"/> |
| <xsd:enumeration ecore:value="0" value="WorstCase"/> |
| <xsd:enumeration ecore:value="0" value="AverageCase"/> |
| <xsd:enumeration ecore:value="0" value="CornerCase"/> |
| <xsd:enumeration ecore:value="0" value="Uniform"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="ITimeDeviation"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getLowerBound" type="am:Time" unique="false"/> |
| <operation name="getUpperBound" type="am:Time" unique="false"/> |
| <operation name="getAverage" type="am:Time" unique="false"/> |
| </xsd:appinfo> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="TimeInterval"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getAverage" type="am:Time" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage(this.getLowerBound(), this.getUpperBound());</body> |
| </operation> |
| <operation name="validateInvariants" type="ecore:EBoolean" unique="false"> |
| <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/> |
| <parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element name="lowerBound" type="am:Time"/> |
| <xsd:element name="upperBound" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType name="TimeConstant"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getLowerBound" type="am:Time" unique="false"> |
| <body>return this.getValue();</body> |
| </operation> |
| <operation name="getUpperBound" type="am:Time" unique="false"> |
| <body>return this.getValue();</body> |
| </operation> |
| <operation name="getAverage" type="am:Time" unique="false"> |
| <body>return this.getValue();</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ITimeDeviation"> |
| <xsd:sequence> |
| <xsd:element name="value" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TimeHistogram"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getLowerBound" type="am:Time" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getLowerBound_Time(this.getEntries());</body> |
| </operation> |
| <operation name="getUpperBound" type="am:Time" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getUpperBound_Time(this.getEntries());</body> |
| </operation> |
| <operation name="getAverage" type="am:Time" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage_Time(this.getEntries());</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ITimeDeviation"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" name="entries" type="am:TimeHistogramEntry"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TimeHistogramEntry"> |
| <xsd:complexContent> |
| <xsd:extension base="am:TimeInterval"> |
| <xsd:attribute ecore:default="1" ecore:unsettable="false" name="occurrences" type="am:PositiveLong" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:ITimeDeviation" name="BoundedTimeDistribution"> |
| <xsd:complexContent> |
| <xsd:extension base="am:TimeInterval"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="TruncatedTimeDistribution"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="validateInvariants" type="ecore:EBoolean" unique="false"> |
| <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/> |
| <parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ITimeDeviation"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="lowerBound" type="am:Time"/> |
| <xsd:element minOccurs="0" name="upperBound" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TimeBoundaries"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the upper and lower bounds of a value interval without defining the distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedTimeDistribution"> |
| <xsd:attribute ecore:unsettable="false" name="samplingType" type="am:SamplingType"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TimeStatistics"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the upper bound, lower bound and mean of a value interval without defining the distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedTimeDistribution"> |
| <xsd:sequence> |
| <xsd:element name="average" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TimeUniformDistribution"> |
| <xsd:annotation> |
| <xsd:documentation>Uniform distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedTimeDistribution"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TimeGaussDistribution"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getAverage" type="am:Time" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), this.getMean(), this.getSd());</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>Gauss distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TruncatedTimeDistribution"> |
| <xsd:sequence> |
| <xsd:element name="mean" type="am:Time"/> |
| <xsd:element name="sd" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TimeWeibullEstimatorsDistribution"> |
| <xsd:annotation> |
| <xsd:documentation>Weibull Distribution |
| The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedTimeDistribution"> |
| <xsd:sequence> |
| <xsd:element name="average" type="am:Time"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="pRemainPromille" type="am:PositiveDouble" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TimeBetaDistribution"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getAverage" type="am:Time" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), <%java.lang.Double%>.valueOf(this.getAlpha()), <%java.lang.Double%>.valueOf(this.getBeta()));</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>Beta distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedTimeDistribution"> |
| <xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="alpha" type="am:PositiveDouble" use="required"/> |
| <xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="beta" type="am:PositiveDouble" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="IDiscreteValueDeviation"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getLowerBound" type="ecore:ELongObject" unique="false"/> |
| <operation name="getUpperBound" type="ecore:ELongObject" unique="false"/> |
| <operation name="getAverage" type="ecore:EDoubleObject" unique="false"/> |
| </xsd:appinfo> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="DiscreteValueInterval"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getAverage" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage(this.getLowerBound(), this.getUpperBound());</body> |
| </operation> |
| <operation name="validateInvariants" type="ecore:EBoolean" unique="false"> |
| <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/> |
| <parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:attribute ecore:default="0" ecore:unsettable="false" name="lowerBound" type="ecore:ELongObject" use="required"/> |
| <xsd:attribute ecore:default="0" ecore:unsettable="false" name="upperBound" type="ecore:ELongObject" use="required"/> |
| </xsd:complexType> |
| <xsd:complexType name="DiscreteValueConstant"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getLowerBound" type="ecore:ELongObject" unique="false"> |
| <body>return <%java.lang.Long%>.valueOf(this.getValue());</body> |
| </operation> |
| <operation name="getUpperBound" type="ecore:ELongObject" unique="false"> |
| <body>return <%java.lang.Long%>.valueOf(this.getValue());</body> |
| </operation> |
| <operation name="getAverage" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%java.lang.Double%>.valueOf(<%java.lang.Long%>.valueOf(this.getValue()).doubleValue());</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:IDiscreteValueDeviation"> |
| <xsd:attribute ecore:default="0" ecore:unsettable="false" name="value" type="ecore:ELong" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DiscreteValueHistogram"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getLowerBound" type="ecore:ELongObject" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getLowerBound_DV(this.getEntries());</body> |
| </operation> |
| <operation name="getUpperBound" type="ecore:ELongObject" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getUpperBound_DV(this.getEntries());</body> |
| </operation> |
| <operation name="getAverage" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage_DV(this.getEntries());</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:IDiscreteValueDeviation"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" name="entries" type="am:DiscreteValueHistogramEntry"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DiscreteValueHistogramEntry"> |
| <xsd:complexContent> |
| <xsd:extension base="am:DiscreteValueInterval"> |
| <xsd:attribute ecore:default="1" ecore:unsettable="false" name="occurrences" type="am:PositiveLong" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:IDiscreteValueDeviation" name="BoundedDiscreteValueDistribution"> |
| <xsd:complexContent> |
| <xsd:extension base="am:DiscreteValueInterval"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="TruncatedDiscreteValueDistribution"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="validateInvariants" type="ecore:EBoolean" unique="false"> |
| <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/> |
| <parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:IDiscreteValueDeviation"> |
| <xsd:attribute name="lowerBound" type="ecore:ELongObject"/> |
| <xsd:attribute name="upperBound" type="ecore:ELongObject"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DiscreteValueBoundaries"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the upper and lower bounds of a value interval without defining the distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedDiscreteValueDistribution"> |
| <xsd:attribute ecore:unsettable="false" name="samplingType" type="am:SamplingType"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DiscreteValueStatistics"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the upper bound, lower bound and mean of a value interval without defining the distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedDiscreteValueDistribution"> |
| <xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="average" type="ecore:EDoubleObject" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DiscreteValueUniformDistribution"> |
| <xsd:annotation> |
| <xsd:documentation>Uniform distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedDiscreteValueDistribution"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DiscreteValueGaussDistribution"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getAverage" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), <%java.lang.Double%>.valueOf(this.getMean()), <%java.lang.Double%>.valueOf(this.getSd()));</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>Gauss distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TruncatedDiscreteValueDistribution"> |
| <xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="mean" type="ecore:EDouble" use="required"/> |
| <xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="sd" type="am:PositiveDouble" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DiscreteValueWeibullEstimatorsDistribution"> |
| <xsd:annotation> |
| <xsd:documentation>Weibull Distribution |
| The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedDiscreteValueDistribution"> |
| <xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="average" type="ecore:EDoubleObject" use="required"/> |
| <xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="pRemainPromille" type="am:PositiveDouble" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DiscreteValueBetaDistribution"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getAverage" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), <%java.lang.Double%>.valueOf(this.getAlpha()), <%java.lang.Double%>.valueOf(this.getBeta()));</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>Beta distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedDiscreteValueDistribution"> |
| <xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="alpha" type="am:PositiveDouble" use="required"/> |
| <xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="beta" type="am:PositiveDouble" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="IContinuousValueDeviation"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getLowerBound" type="ecore:EDoubleObject" unique="false"/> |
| <operation name="getUpperBound" type="ecore:EDoubleObject" unique="false"/> |
| <operation name="getAverage" type="ecore:EDoubleObject" unique="false"/> |
| </xsd:appinfo> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="ContinuousValueInterval"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getAverage" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage(this.getLowerBound(), this.getUpperBound());</body> |
| </operation> |
| <operation name="validateInvariants" type="ecore:EBoolean" unique="false"> |
| <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/> |
| <parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="lowerBound" type="ecore:EDoubleObject" use="required"/> |
| <xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="upperBound" type="ecore:EDoubleObject" use="required"/> |
| </xsd:complexType> |
| <xsd:complexType name="ContinuousValueConstant"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getLowerBound" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%java.lang.Double%>.valueOf(this.getValue());</body> |
| </operation> |
| <operation name="getUpperBound" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%java.lang.Double%>.valueOf(this.getValue());</body> |
| </operation> |
| <operation name="getAverage" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%java.lang.Double%>.valueOf(this.getValue());</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:IContinuousValueDeviation"> |
| <xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="value" type="ecore:EDouble" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ContinuousValueHistogram"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getLowerBound" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getLowerBound_CV(this.getEntries());</body> |
| </operation> |
| <operation name="getUpperBound" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getUpperBound_CV(this.getEntries());</body> |
| </operation> |
| <operation name="getAverage" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage_CV(this.getEntries());</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:IContinuousValueDeviation"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" name="entries" type="am:ContinuousValueHistogramEntry"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ContinuousValueHistogramEntry"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ContinuousValueInterval"> |
| <xsd:attribute ecore:default="1" ecore:unsettable="false" name="occurrences" type="am:PositiveLong" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:IContinuousValueDeviation" name="BoundedContinuousValueDistribution"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ContinuousValueInterval"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="TruncatedContinuousValueDistribution"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="validateInvariants" type="ecore:EBoolean" unique="false"> |
| <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/> |
| <parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:IContinuousValueDeviation"> |
| <xsd:attribute name="lowerBound" type="ecore:EDoubleObject"/> |
| <xsd:attribute name="upperBound" type="ecore:EDoubleObject"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ContinuousValueBoundaries"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the upper and lower bounds of a value interval without defining the distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedContinuousValueDistribution"> |
| <xsd:attribute ecore:unsettable="false" name="samplingType" type="am:SamplingType"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ContinuousValueStatistics"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the upper bound, lower bound and mean of a value interval without defining the distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedContinuousValueDistribution"> |
| <xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="average" type="ecore:EDoubleObject" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ContinuousValueUniformDistribution"> |
| <xsd:annotation> |
| <xsd:documentation>Uniform distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedContinuousValueDistribution"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ContinuousValueGaussDistribution"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getAverage" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), <%java.lang.Double%>.valueOf(this.getMean()), <%java.lang.Double%>.valueOf(this.getSd()));</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>Gauss distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TruncatedContinuousValueDistribution"> |
| <xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="mean" type="ecore:EDouble" use="required"/> |
| <xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="sd" type="am:PositiveDouble" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ContinuousValueWeibullEstimatorsDistribution"> |
| <xsd:annotation> |
| <xsd:documentation>Weibull Distribution |
| The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedContinuousValueDistribution"> |
| <xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="average" type="ecore:EDoubleObject" use="required"/> |
| <xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="pRemainPromille" type="am:PositiveDouble" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ContinuousValueBetaDistribution"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getAverage" type="ecore:EDoubleObject" unique="false"> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), <%java.lang.Double%>.valueOf(this.getAlpha()), <%java.lang.Double%>.valueOf(this.getBeta()));</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>Beta distribution</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BoundedContinuousValueDistribution"> |
| <xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="alpha" type="am:PositiveDouble" use="required"/> |
| <xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="beta" type="am:PositiveDouble" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="Mode"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="NumericMode"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Mode"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="EnumMode"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getLiteral" type="am:ModeLiteral" unique="false"> |
| <parameter name="literal" type="ecore:EString" unique="false"/> |
| <body>final <%org.eclipse.xtext.xbase.lib.Functions.Function1%><<%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, <%java.lang.Boolean%>> _function = new <%org.eclipse.xtext.xbase.lib.Functions.Function1%><<%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, <%java.lang.Boolean%>>() |
| { |
| public <%java.lang.Boolean%> apply(final <%org.eclipse.app4mc.amalthea.model.ModeLiteral%> it) |
| { |
| <%java.lang.String%> _name = it.getName(); |
| return <%java.lang.Boolean%>.valueOf(<%com.google.common.base.Objects%>.equal(_name, literal)); |
| } |
| }; |
| return <%org.eclipse.xtext.xbase.lib.IterableExtensions%>.<<%org.eclipse.app4mc.amalthea.model.ModeLiteral%>>findFirst(this.getLiterals(), _function);</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Mode"> |
| <xsd:sequence> |
| <xsd:element ecore:opposite="containingMode" maxOccurs="unbounded" minOccurs="0" name="literals" type="am:ModeLiteral"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ModeLiteral"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <body><%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _elvis = null; |
| <%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode(); |
| <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _qualifiedNameSegments = null; |
| if (_containingMode!=null) |
| { |
| _qualifiedNameSegments=_containingMode.getQualifiedNameSegments(); |
| } |
| if (_qualifiedNameSegments != null) |
| { |
| _elvis = _qualifiedNameSegments; |
| } else |
| { |
| <%org.eclipse.emf.common.util.BasicEList%><<%java.lang.String%>> _newBasicEList = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList(); |
| _elvis = _newBasicEList; |
| } |
| return _elvis;</body> |
| </operation> |
| <operation name="toString" type="ecore:EString" unique="false"> |
| <body><%java.lang.String%> _xifexpression = null; |
| boolean _isNullOrEmpty = <%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName()); |
| if (_isNullOrEmpty) |
| { |
| _xifexpression = "<literal>"; |
| } |
| else |
| { |
| _xifexpression = this.getName(); |
| } |
| return _xifexpression;</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute ecore:changeable="false" ecore:opposite="literals" ecore:reference="am:EnumMode" name="containingMode" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType ecore:instanceClass="long" name="Address"> |
| <xsd:annotation> |
| <xsd:documentation>Hardware Address (long; specified as hexadecimal value)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:minInclusive value="0"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType ecore:instanceClass="int" name="PositiveInt"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:minExclusive value="0"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType ecore:instanceClass="long" name="PositiveLong"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:minExclusive value="0"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType ecore:instanceClass="double" name="PositiveDouble"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:minExclusive value="0"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType ecore:instanceClass="int" name="NonNegativeInt"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:minInclusive value="0"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType ecore:instanceClass="long" name="NonNegativeLong"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:minInclusive value="0"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType ecore:instanceClass="double" name="NonNegativeDouble"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:minInclusive value="0"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType ecore:implements="am:IComponentContainer am:IInterfaceContainer" name="ComponentsModel"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="structures" type="am:ComponentStructure"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="systems" type="am:System"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="IComponentContainer"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="components" type="am:Component"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="IInterfaceContainer"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="interfaces" type="am:MainInterface"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="ISystem"> |
| <xsd:sequence> |
| <xsd:element ecore:opposite="containingSystem" maxOccurs="unbounded" minOccurs="0" name="componentInstances" type="am:ComponentInstance"/> |
| <xsd:element ecore:opposite="containingSystem" maxOccurs="unbounded" minOccurs="0" name="connectors" type="am:Connector"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="groundedPorts" type="am:QualifiedPort"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:QualifiedPort" ecore:transient="true" ecore:volatile="true" name="innerPorts"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:ITaggable" name="ComponentInterface"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element ecore:opposite="containingInterface" maxOccurs="unbounded" minOccurs="0" name="subInterfaces" type="am:SubInterface"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:TypeDefinition" name="datatype" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:INamespaceMember am:IComponentStructureMember" name="MainInterface"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ComponentInterface"> |
| <xsd:attribute default="1.0" ecore:unsettable="false" name="version" type="ecore:EString"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SubInterface"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <body><%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _elvis = null; |
| <%org.eclipse.app4mc.amalthea.model.ComponentInterface%> _containingInterface = this.getContainingInterface(); |
| <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _qualifiedNameSegments = null; |
| if (_containingInterface!=null) |
| { |
| _qualifiedNameSegments=_containingInterface.getQualifiedNameSegments(); |
| } |
| if (_qualifiedNameSegments != null) |
| { |
| _elvis = _qualifiedNameSegments; |
| } else |
| { |
| <%org.eclipse.emf.common.util.BasicEList%><<%java.lang.String%>> _newBasicEList = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList(); |
| _elvis = _newBasicEList; |
| } |
| return _elvis;</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ComponentInterface"> |
| <xsd:attribute ecore:changeable="false" ecore:opposite="subInterfaces" ecore:reference="am:ComponentInterface" name="containingInterface" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ITaggable" name="ComponentPort"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <body><%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _elvis = null; |
| <%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent(); |
| <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _qualifiedNameSegments = null; |
| if (_containingComponent!=null) |
| { |
| _qualifiedNameSegments=_containingComponent.getQualifiedNameSegments(); |
| } |
| if (_qualifiedNameSegments != null) |
| { |
| _elvis = _qualifiedNameSegments; |
| } else |
| { |
| <%org.eclipse.emf.common.util.BasicEList%><<%java.lang.String%>> _newBasicEList = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList(); |
| _elvis = _newBasicEList; |
| } |
| return _elvis;</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute ecore:changeable="false" ecore:opposite="ports" ecore:reference="am:Component" name="containingComponent" type="xsd:anyURI"/> |
| <xsd:attribute ecore:unsettable="false" name="kind" type="am:InterfaceKind"/> |
| <xsd:attribute ecore:reference="am:ComponentInterface" name="interface" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ComponentStructure"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getContainingStructure" type="am:ComponentStructure" unique="false"> |
| <body><%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _xifexpression = null; |
| <%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer(); |
| if ((_eContainer instanceof <%org.eclipse.app4mc.amalthea.model.ComponentStructure%>)) |
| { |
| <%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer(); |
| _xifexpression = ((<%org.eclipse.app4mc.amalthea.model.ComponentStructure%>) _eContainer_1); |
| } |
| else |
| { |
| _xifexpression = null; |
| } |
| return _xifexpression;</body> |
| </operation> |
| <operation name="getDefaultNameSeparator" type="ecore:EString" unique="false"> |
| <body>return "::";</body> |
| </operation> |
| <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <body><%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _elvis = null; |
| <%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _containingStructure = this.getContainingStructure(); |
| <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _qualifiedNameSegments = null; |
| if (_containingStructure!=null) |
| { |
| _qualifiedNameSegments=_containingStructure.getQualifiedNameSegments(); |
| } |
| if (_qualifiedNameSegments != null) |
| { |
| _elvis = _qualifiedNameSegments; |
| } else |
| { |
| <%org.eclipse.emf.common.util.BasicEList%><<%java.lang.String%>> _newBasicEList = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList(); |
| _elvis = _newBasicEList; |
| } |
| return _elvis;</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="subStructures" type="am:ComponentStructure"/> |
| </xsd:sequence> |
| <xsd:attribute default="" ecore:unsettable="false" name="structureType" type="ecore:EString"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:IComponentStructureMember" ecore:transient="true" ecore:volatile="true" name="memberObjects"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of objects (IComponentStructureMember) referring to this structure. |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="IComponentStructureMember"> |
| <xsd:attribute ecore:reference="am:ComponentStructure" name="structure" type="xsd:anyURI"/> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ITaggable am:INamespaceMember am:IComponentStructureMember" name="Component"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element ecore:opposite="containingComponent" maxOccurs="unbounded" minOccurs="0" name="ports" type="am:ComponentPort"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:AbstractProcess" name="processes"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:reference="am:Runnable" name="runnables"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:reference="am:Label" name="labels"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:reference="am:Semaphore" name="semaphores"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:reference="am:OsEvent" name="osEvents"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ISystem" name="Composite"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Component"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ITaggable am:ISystem" name="System"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ITaggable" name="ComponentInstance"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <body><%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _elvis = null; |
| <%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer(); |
| <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _qualifiedNameSegments = null; |
| if (_namedContainer!=null) |
| { |
| _qualifiedNameSegments=_namedContainer.getQualifiedNameSegments(); |
| } |
| if (_qualifiedNameSegments != null) |
| { |
| _elvis = _qualifiedNameSegments; |
| } else |
| { |
| <%org.eclipse.emf.common.util.BasicEList%><<%java.lang.String%>> _newBasicEList = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList(); |
| _elvis = _newBasicEList; |
| } |
| return _elvis;</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute ecore:opposite="componentInstances" ecore:reference="am:ISystem" name="containingSystem" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:Component" name="type" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:INamed am:ITaggable" name="Connector"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="sourcePort" type="am:QualifiedPort"/> |
| <xsd:element minOccurs="0" name="targetPort" type="am:QualifiedPort"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="implementedInterfaces" type="am:InterfaceChannel"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:opposite="connectors" ecore:reference="am:ISystem" name="containingSystem" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="InterfaceChannel"> |
| <xsd:attribute ecore:reference="am:ComponentInterface" name="key" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:Channel" name="value" type="xsd:anyURI"/> |
| </xsd:complexType> |
| <xsd:complexType name="QualifiedPort"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:ComponentInstance" name="instance" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:ComponentPort" name="port" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="InterfaceKind"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="provides"/> |
| <xsd:enumeration ecore:value="0" value="requires"/> |
| <xsd:enumeration ecore:value="0" value="provides_requires"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="ConfigModel"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="eventsToTrace" type="am:EventConfig"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:INamed" name="EventConfig"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:EntityEvent" name="event" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ConstraintsModel"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="eventChains" type="am:EventChain"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="timingConstraints" type="am:TimingConstraint"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="affinityConstraints" type="am:AffinityConstraint"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="runnableSequencingConstraints" type="am:RunnableSequencingConstraint"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="dataAgeConstraints" type="am:DataAgeConstraint"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="requirements" type="am:Requirement"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="dataCoherencyGroups" type="am:DataCoherencyGroup"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="dataStabilityGroups" type="am:DataStabilityGroup"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="physicalSectionConstraints" type="am:PhysicalSectionConstraint"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="RunnableOrderType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="successor"/> |
| <xsd:enumeration ecore:value="0" value="immediateSuccessorStartSequence"/> |
| <xsd:enumeration ecore:value="0" value="immediateSuccessorAnySequence"/> |
| <xsd:enumeration ecore:value="0" value="immediateSuccessorEndSequence"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="RunnableSequencingConstraint"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="2" name="runnableGroups" type="am:RunnableEntityGroup"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="orderType" type="am:RunnableOrderType"/> |
| <xsd:attribute ecore:reference="am:AbstractProcess" name="processScope"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="AffinityConstraint"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="SeparationConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract superclass for all separation constraints</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:AffinityConstraint"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="PairingConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract superclass for all pairing constraints</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:AffinityConstraint"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="ProcessConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract superclass for all process related constraint |
| The target describes the entity on which the processes can be mapped</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="target" type="am:ProcessConstraintTarget"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="RunnableConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract superclass for all runnable related constraint |
| The target describes the entity on which the runnables can be mapped</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="target" type="am:RunnableConstraintTarget"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="DataConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract superclass for all data related constraint |
| The target describes the entity on which the data can be mapped</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="target" type="am:DataConstraintTarget"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:RunnableConstraint am:BaseObject" name="RunnableSeparationConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>A runnable-separation-constraint |
| groups describes the runnable-groups that should be separated from each other on the target |
| if there is only one group then this means that the runnables of this group are not allowed to be executed on the target</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:SeparationConstraint"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="2" name="groups" type="am:RunnableGroup"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ProcessConstraint am:BaseObject" name="ProcessSeparationConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>A process-separation-constraint |
| groups describes the process-groups that should be separated from each other on the target |
| if there is only one group then this means that the processes of this group are not allowed to be executed on the target</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:SeparationConstraint"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="2" name="groups" type="am:ProcessGroup"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:DataConstraint am:BaseObject" name="DataSeparationConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>A data-separation-constraint |
| groups describes the label-groups that should be separated from each other on the target |
| if there is only one group then this means that the label of this group is not allowed to be executed on the target</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:SeparationConstraint"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="2" name="groups" type="am:LabelEntityGroup"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:RunnableConstraint am:BaseObject" name="RunnablePairingConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>A runnable-pairing-constraint |
| runnables describes the group of runnables that should be paired on the target</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:PairingConstraint"> |
| <xsd:sequence> |
| <xsd:element name="group" type="am:RunnableGroup"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ProcessConstraint am:BaseObject" name="ProcessPairingConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>A process-pairing-constraint |
| processes describes the group of processes that should be paired on the target</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:PairingConstraint"> |
| <xsd:sequence> |
| <xsd:element name="group" type="am:ProcessGroup"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:DataConstraint am:BaseObject" name="DataPairingConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>A data-pairing-constraint |
| labels describes the group of labels that should be paired on the target</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:PairingConstraint"> |
| <xsd:sequence> |
| <xsd:element name="group" type="am:LabelGroup"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="RunnableConstraintTarget"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract superclass for all possible targets for runnable-constraints</xsd:documentation> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="ProcessConstraintTarget"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract superclass for all possible targets for process-constraints</xsd:documentation> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="DataConstraintTarget"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract superclass for all possible targets for data-constraints</xsd:documentation> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:BaseObject" name="TargetMemory"> |
| <xsd:annotation> |
| <xsd:documentation>A memory target description |
| A memory can be a target for data-constraints |
| memories: the reference to zero or more Memories. If this list is empty, the target stands for all memories!</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:DataConstraintTarget"> |
| <xsd:attribute ecore:reference="am:Memory" name="memories"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ProcessConstraintTarget am:BaseObject" name="TargetCore"> |
| <xsd:annotation> |
| <xsd:documentation>A core target description |
| A core can be a target for runnable-constraints, process-constraints and scheduler-constraints |
| cores: the reference to zero or more Cores. If this list is empty, the target stands for all cores!</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:RunnableConstraintTarget"> |
| <xsd:attribute ecore:reference="am:ProcessingUnit" name="cores"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ProcessConstraintTarget am:BaseObject" name="TargetScheduler"> |
| <xsd:annotation> |
| <xsd:documentation>A scheduler target description |
| A scheduler can be a target for runnable-constraints and process-constraints |
| schedulers: the reference to zero or more Schedulers. If this list is empty, the target stands for all schedulers!</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:RunnableConstraintTarget"> |
| <xsd:attribute ecore:reference="am:Scheduler" name="schedulers"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="LabelGroup"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract description for a group of labels that can be paired or separated by a runnable-constraint</xsd:documentation> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="RunnableGroup"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract description for a group of runnables that can be paired or separated by a runnable-constraint</xsd:documentation> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="ProcessGroup"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract description for a group of processes that can be paired or separated by a process-constraint</xsd:documentation> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:BaseObject" name="LabelEntityGroup"> |
| <xsd:annotation> |
| <xsd:documentation>A group of labels that can be paired or separated by a data-constraint</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:LabelGroup"> |
| <xsd:attribute ecore:reference="am:Label" name="labels" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:BaseObject" name="RunnableEntityGroup"> |
| <xsd:annotation> |
| <xsd:documentation>A group of runnables that can be paired or separated by a runnable-constraint</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:RunnableGroup"> |
| <xsd:attribute ecore:reference="am:Runnable" name="runnables" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:BaseObject" name="ProcessEntityGroup"> |
| <xsd:annotation> |
| <xsd:documentation>A group of processes that can be paired or separated by a process-constraint</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ProcessGroup"> |
| <xsd:attribute ecore:reference="am:Process" name="processes" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ProcessGroup am:BaseObject" name="TagGroup"> |
| <xsd:annotation> |
| <xsd:documentation>A group that contains only a tag and groups all objects that are marked with this tag |
| This can be runnables or processes</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:RunnableGroup"> |
| <xsd:attribute ecore:reference="am:Tag" name="tag" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:INamed" name="AbstractEventChain"> |
| <xsd:annotation> |
| <xsd:documentation>Describes an event chain which must have a minimum of two events (stimulus and response) |
| If there are more events the event chain have to be divided into segments. Each segment is another event chain. |
| Alternative event paths are contained in strands. |
| stimulus: Beginning of chain |
| response: End of chain |
| segments: Sub event chains |
| strands: alternative event paths</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="items" type="am:EventChainItem"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:Event" name="stimulus" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:Event" name="response" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:unsettable="false" name="itemType" type="am:EventChainItemType"/> |
| <xsd:attribute default="1" ecore:unsettable="false" name="minItemsCompleted" type="am:PositiveInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="EventChainItemType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="sequence"/> |
| <xsd:enumeration ecore:value="0" value="parallel"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType ecore:implements="am:IReferable" name="EventChain"> |
| <xsd:complexContent> |
| <xsd:extension base="am:AbstractEventChain"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SubEventChain"> |
| <xsd:complexContent> |
| <xsd:extension base="am:AbstractEventChain"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="EventChainItem"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getEventChain" type="am:AbstractEventChain" unique="false"/> |
| </xsd:appinfo> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:EventChainItem" name="EventChainReference"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:EventChain" name="eventChain" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:EventChainItem" name="EventChainContainer"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element name="eventChain" type="am:SubEventChain"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="TimingConstraint"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="PhysicalSectionConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>This contraints is used to limit a section in Memories</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute ecore:reference="am:Section" name="section" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:Memory" name="memories" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="SynchronizationConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>Base class for synchronization constraints, which limit the distance between events |
| multipleOccurrencesAllowed: Defines whether multiple event occurrences are allowed for analysis |
| tolerance: Maximum allowed tolerance</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TimingConstraint"> |
| <xsd:sequence> |
| <xsd:element name="tolerance" type="am:Time"/> |
| </xsd:sequence> |
| <xsd:attribute default="false" ecore:unsettable="false" name="multipleOccurrencesAllowed" type="ecore:EBoolean"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="EventSynchronizationConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>The synchronization constraint considers a group of events and limits the distance of the events within this group.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:SynchronizationConstraint"> |
| <xsd:attribute ecore:reference="am:EntityEvent" name="events" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="SynchronizationType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="Stimulus"/> |
| <xsd:enumeration ecore:value="0" value="Response"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="EventChainSynchronizationConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>A synchronization constraint describes the allowed tolerance in synchronization between two event chains |
| scope: Considered event chains that have to by in sync |
| type: Defines which parts of the event chains have to be in sync</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:SynchronizationConstraint"> |
| <xsd:attribute ecore:reference="am:EventChain" name="scope" use="required"> |
| <xsd:simpleType> |
| <xsd:restriction> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| <xsd:length value="2"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:unsettable="false" name="type" type="am:SynchronizationType"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="MappingType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="OneToOne"/> |
| <xsd:enumeration ecore:value="0" value="Reaction"/> |
| <xsd:enumeration ecore:value="0" value="UniqueReaction"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="DelayConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>This constraint describes how a source and a target event are placed relative to each other</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TimingConstraint"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="upper" type="am:Time"/> |
| <xsd:element minOccurs="0" name="lower" type="am:Time"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="mappingType" type="am:MappingType"/> |
| <xsd:attribute ecore:reference="am:EntityEvent" name="source" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:EntityEvent" name="target" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="LatencyType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="Age"/> |
| <xsd:enumeration ecore:value="0" value="Reaction"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="EventChainLatencyConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>A latency constraint describes the allowed range in latency between a stimulus and its response. |
| scope: Considered event chain that defines the stimulus and response relation |
| type: Defines the point of view (forward or backward) |
| minimum: Minimum allowed latency |
| maximum: Maximum allowed latency</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TimingConstraint"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="minimum" type="am:Time"/> |
| <xsd:element minOccurs="0" name="maximum" type="am:Time"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:EventChain" name="scope" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:unsettable="false" name="type" type="am:LatencyType"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="RepetitionConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>A repetition constraint prescribes the distribution of a single event during runtime.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TimingConstraint"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="lower" type="am:Time"/> |
| <xsd:element minOccurs="0" name="upper" type="am:Time"/> |
| <xsd:element minOccurs="0" name="jitter" type="am:Time"/> |
| <xsd:element minOccurs="0" name="period" type="am:Time"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:EntityEvent" name="event" type="xsd:anyURI" use="required"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="span" type="ecore:EInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DataAgeConstraint"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element name="dataAge" type="am:DataAge"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:Runnable" name="runnable" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:Label" name="label" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="DataAge"/> |
| <xsd:complexType name="DataAgeCycle"> |
| <xsd:complexContent> |
| <xsd:extension base="am:DataAge"> |
| <xsd:attribute default="0" ecore:unsettable="false" name="minimumCycle" type="ecore:EInt"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="maximumCycle" type="ecore:EInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DataAgeTime"> |
| <xsd:complexContent> |
| <xsd:extension base="am:DataAge"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="minimumTime" type="am:Time"/> |
| <xsd:element minOccurs="0" name="maximumTime" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:INamed" name="Requirement"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element name="limit" type="am:RequirementLimit"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="severity" type="am:Severity"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ProcessRequirement"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Requirement"> |
| <xsd:attribute ecore:reference="am:AbstractProcess" name="process" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="RunnableRequirement"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Requirement"> |
| <xsd:attribute ecore:reference="am:Runnable" name="runnable" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ArchitectureRequirement"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Requirement"> |
| <xsd:attribute ecore:reference="am:Component" name="component" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ProcessChainRequirement"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Requirement"> |
| <xsd:attribute ecore:reference="am:ProcessChain" name="processChain" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="RequirementLimit"> |
| <xsd:attribute ecore:unsettable="false" name="limitType" type="am:LimitType"/> |
| </xsd:complexType> |
| <xsd:complexType name="CPUPercentageRequirementLimit"> |
| <xsd:complexContent> |
| <xsd:extension base="am:RequirementLimit"> |
| <xsd:attribute ecore:unsettable="false" name="metric" type="am:CPUPercentageMetric"/> |
| <xsd:attribute default="0.0" ecore:unsettable="false" name="limitValue" type="ecore:EDouble"/> |
| <xsd:attribute ecore:reference="am:ProcessingUnit" name="hardwareContext" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="FrequencyRequirementLimit"> |
| <xsd:complexContent> |
| <xsd:extension base="am:RequirementLimit"> |
| <xsd:sequence> |
| <xsd:element name="limitValue" type="am:Frequency"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="metric" type="am:FrequencyMetric"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="PercentageRequirementLimit"> |
| <xsd:complexContent> |
| <xsd:extension base="am:RequirementLimit"> |
| <xsd:attribute ecore:unsettable="false" name="metric" type="am:PercentageMetric"/> |
| <xsd:attribute default="0.0" ecore:unsettable="false" name="limitValue" type="ecore:EDouble"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="CountRequirementLimit"> |
| <xsd:complexContent> |
| <xsd:extension base="am:RequirementLimit"> |
| <xsd:attribute ecore:unsettable="false" name="metric" type="am:CountMetric"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="limitValue" type="ecore:EInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TimeRequirementLimit"> |
| <xsd:complexContent> |
| <xsd:extension base="am:RequirementLimit"> |
| <xsd:sequence> |
| <xsd:element name="limitValue" type="am:Time"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="metric" type="am:TimeMetric"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="Severity"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="Cosmetic"/> |
| <xsd:enumeration ecore:value="0" value="Minor"/> |
| <xsd:enumeration ecore:value="0" value="Major"/> |
| <xsd:enumeration ecore:value="0" value="Critical"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="LimitType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="UpperLimit"/> |
| <xsd:enumeration ecore:value="0" value="LowerLimit"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="TimeMetric"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="ActivateToActivate"/> |
| <xsd:enumeration ecore:value="0" value="CoreExecutionTime"/> |
| <xsd:enumeration ecore:value="0" value="EndToEnd"/> |
| <xsd:enumeration ecore:value="0" value="EndToStart"/> |
| <xsd:enumeration ecore:value="0" value="GrossExecutionTime"/> |
| <xsd:enumeration ecore:value="0" value="Lateness"/> |
| <xsd:enumeration ecore:value="0" value="MemoryAccessTime"/> |
| <xsd:enumeration ecore:value="0" value="NetExecutionTime"/> |
| <xsd:enumeration ecore:value="0" value="OsOverhead"/> |
| <xsd:enumeration ecore:value="0" value="ParkingTime"/> |
| <xsd:enumeration ecore:value="0" value="PollingTime"/> |
| <xsd:enumeration ecore:value="0" value="ReadyTime"/> |
| <xsd:enumeration ecore:value="0" value="ResponseTime"/> |
| <xsd:enumeration ecore:value="0" value="RunningTime"/> |
| <xsd:enumeration ecore:value="0" value="StartDelay"/> |
| <xsd:enumeration ecore:value="0" value="StartToStart"/> |
| <xsd:enumeration ecore:value="0" value="WaitingTime"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="CountMetric"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="Activations"/> |
| <xsd:enumeration ecore:value="0" value="BoundedMigrations"/> |
| <xsd:enumeration ecore:value="0" value="CacheHit"/> |
| <xsd:enumeration ecore:value="0" value="CacheMiss"/> |
| <xsd:enumeration ecore:value="0" value="FullMigrations"/> |
| <xsd:enumeration ecore:value="0" value="MtaLimitExceeding"/> |
| <xsd:enumeration ecore:value="0" value="Preemptions"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="PercentageMetric"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="CacheHitRatio"/> |
| <xsd:enumeration ecore:value="0" value="CacheMissRatio"/> |
| <xsd:enumeration ecore:value="0" value="CoreExecutionTimeRelative"/> |
| <xsd:enumeration ecore:value="0" value="MemoryAccessTimeRelative"/> |
| <xsd:enumeration ecore:value="0" value="NormalizedLateness"/> |
| <xsd:enumeration ecore:value="0" value="NormalizedResponseTime"/> |
| <xsd:enumeration ecore:value="0" value="OsOverheadRelative"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="CPUPercentageMetric"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="CPUBuffering"/> |
| <xsd:enumeration ecore:value="0" value="CPULoad"/> |
| <xsd:enumeration ecore:value="0" value="CPUParking"/> |
| <xsd:enumeration ecore:value="0" value="CPUPolling"/> |
| <xsd:enumeration ecore:value="0" value="CPUReady"/> |
| <xsd:enumeration ecore:value="0" value="CPURunning"/> |
| <xsd:enumeration ecore:value="0" value="CPUWaiting"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="FrequencyMetric"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="CacheHitFrequency"/> |
| <xsd:enumeration ecore:value="0" value="CacheMissFrequency"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="DataCoherencyGroup"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="scope" type="am:DataGroupScope"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:Label" name="labels" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:unsettable="false" name="direction" type="am:CoherencyDirection"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="CoherencyDirection"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="input"/> |
| <xsd:enumeration ecore:value="0" value="output"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="DataStabilityGroup"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="scope" type="am:DataGroupScope"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:Label" name="labels" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="DataGroupScope"/> |
| <xsd:complexType name="ProcessScope"> |
| <xsd:complexContent> |
| <xsd:extension base="am:DataGroupScope"> |
| <xsd:attribute ecore:reference="am:AbstractProcess" name="process" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="RunnableScope"> |
| <xsd:complexContent> |
| <xsd:extension base="am:DataGroupScope"> |
| <xsd:attribute ecore:reference="am:Runnable" name="runnable" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ComponentScope"> |
| <xsd:complexContent> |
| <xsd:extension base="am:DataGroupScope"> |
| <xsd:attribute ecore:reference="am:Component" name="component" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="EventModel"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="events" type="am:Event"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:ITaggable am:IDescription" name="Event"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract event</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="EventSet"> |
| <xsd:annotation> |
| <xsd:documentation>A set of entity-events</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Event"> |
| <xsd:attribute ecore:reference="am:EntityEvent" name="events" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="EntityEvent"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract event that describes the notification of a changed state of an entity</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Event"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="TriggerEvent"> |
| <xsd:annotation> |
| <xsd:documentation>Defines Events to be used in Stimuli as trigger.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:EntityEvent"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="CustomEvent"> |
| <xsd:complexContent> |
| <xsd:extension base="am:TriggerEvent"> |
| <xsd:attribute name="eventType" type="ecore:EString"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:CustomEventTrigger" ecore:transient="true" ecore:volatile="true" name="explicitTriggers"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of triggers (CustomEventTrigger). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="StimulusEvent"> |
| <xsd:annotation> |
| <xsd:documentation>Describes the event of a stimulus. |
| It contains only the stimulus but no event type because a stimulus has only one event type.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:EntityEvent"> |
| <xsd:attribute ecore:reference="am:Stimulus" name="entity" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ProcessEvent"> |
| <xsd:annotation> |
| <xsd:documentation>Describes the event of a process |
| eventType: The type of the Event |
| entity: The process that fires the event (optional) |
| processingUnit: The processing unit that executes the process when the event is fired (optional)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:EntityEvent"> |
| <xsd:attribute ecore:unsettable="false" name="eventType" type="am:ProcessEventType"/> |
| <xsd:attribute ecore:reference="am:Process" name="entity" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:ProcessingUnit" name="processingUnit" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ProcessChainEvent"> |
| <xsd:annotation> |
| <xsd:documentation>Describes the event of some process within a process chain |
| eventType: The type of the Event |
| entity: The process that fires the event (optional) |
| processingUnit: The processing unit that executes the process when the event is fired (optional)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:EntityEvent"> |
| <xsd:attribute ecore:unsettable="false" name="eventType" type="am:ProcessEventType"/> |
| <xsd:attribute ecore:reference="am:ProcessChain" name="entity" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:ProcessingUnit" name="processingUnit" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="RunnableEvent"> |
| <xsd:annotation> |
| <xsd:documentation>Describes the event of a runnable |
| eventType: The type of event |
| entity: The runnable that fires the event (optional) |
| process: The process that executes the runnable (optional) |
| processingUnit: The processing unit that executes the runnable (executes the process that calls the runnable) (optional)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TriggerEvent"> |
| <xsd:attribute ecore:unsettable="false" name="eventType" type="am:RunnableEventType"/> |
| <xsd:attribute ecore:reference="am:Runnable" name="entity" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:Process" name="process" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:ProcessingUnit" name="processingUnit" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="LabelEvent"> |
| <xsd:annotation> |
| <xsd:documentation>Describes the event of a label access |
| eventType: The type of event |
| entity: The accessed label that fires the event (optional) |
| runnable: The runnable that accesses the label (optional) |
| process: The process that accesses the label (optional)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TriggerEvent"> |
| <xsd:attribute ecore:unsettable="false" name="eventType" type="am:LabelEventType"/> |
| <xsd:attribute ecore:reference="am:Label" name="entity" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:Runnable" name="runnable" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:Process" name="process" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ChannelEvent"> |
| <xsd:annotation> |
| <xsd:documentation>Describes the event of a channel access |
| eventType: The type of event |
| entity: The accessed channel that fires the event (optional) |
| runnable: The runnable that accesses the label (optional) |
| process: The process that accesses the label (optional)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TriggerEvent"> |
| <xsd:attribute ecore:unsettable="false" name="eventType" type="am:ChannelEventType"/> |
| <xsd:attribute ecore:reference="am:Channel" name="entity" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:Runnable" name="runnable" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:Process" name="process" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SemaphoreEvent"> |
| <xsd:annotation> |
| <xsd:documentation>Describes the event of a semaphore access |
| eventType: The type of event |
| entity: The accessed semaphore that fires the event (optional) |
| runnable: The runnable that accesses the semaphore (optional) |
| process: The process that accesses the semaphore (optional) |
| processingUnit: The processing unit that executes the process/runnable that accesses the semaphore (optional)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:EntityEvent"> |
| <xsd:attribute ecore:unsettable="false" name="eventType" type="am:SemaphoreEventType"/> |
| <xsd:attribute ecore:reference="am:Semaphore" name="entity" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:Runnable" name="runnable" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:Process" name="process" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:ProcessingUnit" name="processingUnit" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ComponentEvent"> |
| <xsd:annotation> |
| <xsd:documentation>Describes the event of a component |
| eventType: The type of event |
| entity: The component that fires the event (optional)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:EntityEvent"> |
| <xsd:attribute ecore:unsettable="false" name="eventType" type="am:ComponentEventType"/> |
| <xsd:attribute ecore:reference="am:Component" name="entity" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="ProcessEventType"> |
| <xsd:annotation> |
| <xsd:documentation>The types of a process event</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_all_"/> |
| <xsd:enumeration ecore:value="0" value="activate"/> |
| <xsd:enumeration ecore:value="0" value="start"/> |
| <xsd:enumeration ecore:value="0" value="resume"/> |
| <xsd:enumeration ecore:value="0" value="preempt"/> |
| <xsd:enumeration ecore:value="0" value="poll"/> |
| <xsd:enumeration ecore:value="0" value="run"/> |
| <xsd:enumeration ecore:value="0" value="wait"/> |
| <xsd:enumeration ecore:value="0" value="poll_parking"/> |
| <xsd:enumeration ecore:value="0" value="park"/> |
| <xsd:enumeration ecore:value="0" value="release_parking"/> |
| <xsd:enumeration ecore:value="0" value="release"/> |
| <xsd:enumeration ecore:value="0" value="terminate"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="RunnableEventType"> |
| <xsd:annotation> |
| <xsd:documentation>The types of a runnable event</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_all_"/> |
| <xsd:enumeration ecore:value="0" value="start"/> |
| <xsd:enumeration ecore:value="0" value="suspend"/> |
| <xsd:enumeration ecore:value="0" value="resume"/> |
| <xsd:enumeration ecore:value="0" value="terminate"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="LabelEventType"> |
| <xsd:annotation> |
| <xsd:documentation>The types of a label event</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_all_"/> |
| <xsd:enumeration ecore:value="0" value="read"/> |
| <xsd:enumeration ecore:value="0" value="write"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="ChannelEventType"> |
| <xsd:annotation> |
| <xsd:documentation>The types of a label event</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_all_"/> |
| <xsd:enumeration ecore:value="0" value="send"/> |
| <xsd:enumeration ecore:value="0" value="receive"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="SemaphoreEventType"> |
| <xsd:annotation> |
| <xsd:documentation>The types of a semaphore event</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_all_"/> |
| <xsd:enumeration ecore:value="0" value="lock"/> |
| <xsd:enumeration ecore:value="0" value="unlock"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="ComponentEventType"> |
| <xsd:annotation> |
| <xsd:documentation>The types of a component event</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_all_"/> |
| <xsd:enumeration ecore:value="0" value="start"/> |
| <xsd:enumeration ecore:value="0" value="end"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="HWModel"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="definitions" type="am:HwDefinition"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="featureCategories" type="am:HwFeatureCategory"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="structures" type="am:HwStructure"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="domains" type="am:HwDomain"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ITaggable" name="HwStructure"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="ports" type="am:HwPort"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="structures" type="am:HwStructure"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="modules" type="am:HwModule"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="connections" type="am:HwConnection"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="structureType" type="am:StructureType"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:HwPort" ecore:transient="true" ecore:volatile="true" name="innerPorts"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:ITaggable" name="HwModule"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="ports" type="am:HwPort"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:PowerDomain" name="powerDomain" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:FrequencyDomain" name="frequencyDomain" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:ITaggable" name="HwDomain"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="FrequencyDomain"> |
| <xsd:complexContent> |
| <xsd:extension base="am:HwDomain"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="defaultValue" type="am:Frequency"/> |
| </xsd:sequence> |
| <xsd:attribute default="false" ecore:unsettable="false" name="clockGating" type="ecore:EBoolean"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="PowerDomain"> |
| <xsd:complexContent> |
| <xsd:extension base="am:HwDomain"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="defaultValue" type="am:Voltage"/> |
| </xsd:sequence> |
| <xsd:attribute default="false" ecore:unsettable="false" name="powerGating" type="ecore:EBoolean"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:HwDestination am:HwPathElement" name="ProcessingUnit"> |
| <xsd:complexContent> |
| <xsd:extension base="am:HwModule"> |
| <xsd:sequence> |
| <xsd:element ecore:opposite="source" maxOccurs="unbounded" minOccurs="0" name="accessElements" type="am:HwAccessElement"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="caches" type="am:Cache"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:ProcessingUnitDefinition" name="definition" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:HwDestination" name="Memory"> |
| <xsd:complexContent> |
| <xsd:extension base="am:HwModule"> |
| <xsd:attribute ecore:reference="am:MemoryDefinition" name="definition" type="xsd:anyURI"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:MemoryMapping" ecore:transient="true" ecore:volatile="true" name="mappings"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of mappings (MemoryMapping). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="MemoryType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="DRAM"/> |
| <xsd:enumeration ecore:value="0" value="SRAM"/> |
| <xsd:enumeration ecore:value="0" value="FLASH"/> |
| <xsd:enumeration ecore:value="0" value="PCM"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType ecore:implements="am:HwPathElement" name="Cache"> |
| <xsd:complexContent> |
| <xsd:extension base="am:HwModule"> |
| <xsd:attribute ecore:reference="am:CacheDefinition" name="definition" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IDescription" name="HwFeatureCategory"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element ecore:opposite="containingCategory" maxOccurs="unbounded" minOccurs="0" name="features" type="am:HwFeature"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="featureType" type="am:HwFeatureType"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="HwFeature"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <body><%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _elvis = null; |
| <%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory(); |
| <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _qualifiedNameSegments = null; |
| if (_containingCategory!=null) |
| { |
| _qualifiedNameSegments=_containingCategory.getQualifiedNameSegments(); |
| } |
| if (_qualifiedNameSegments != null) |
| { |
| _elvis = _qualifiedNameSegments; |
| } else |
| { |
| <%org.eclipse.emf.common.util.BasicEList%><<%java.lang.String%>> _newBasicEList = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList(); |
| _elvis = _newBasicEList; |
| } |
| return _elvis;</body> |
| </operation> |
| <operation name="toString" type="ecore:EString" unique="false"> |
| <body><%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory(); |
| <%java.lang.String%> _name = null; |
| if (_containingCategory!=null) |
| { |
| _name=_containingCategory.getName(); |
| } |
| final <%java.lang.String%> featureName = _name; |
| <%java.lang.String%> _xifexpression = null; |
| boolean _isNullOrEmpty = <%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(featureName); |
| if (_isNullOrEmpty) |
| { |
| _xifexpression = "<category>"; |
| } |
| else |
| { |
| _xifexpression = featureName; |
| } |
| <%java.lang.String%> _plus = (_xifexpression + "::"); |
| <%java.lang.String%> _xifexpression_1 = null; |
| boolean _isNullOrEmpty_1 = <%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName()); |
| if (_isNullOrEmpty_1) |
| { |
| _xifexpression_1 = "<feature>"; |
| } |
| else |
| { |
| _xifexpression_1 = this.getName(); |
| } |
| return (_plus + _xifexpression_1);</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute ecore:changeable="false" ecore:opposite="features" ecore:reference="am:HwFeatureCategory" name="containingCategory" type="xsd:anyURI"/> |
| <xsd:attribute default="0.0" ecore:unsettable="false" name="value" type="ecore:EDouble"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ITaggable" name="HwPort"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <body><%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _elvis = null; |
| <%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer(); |
| <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _qualifiedNameSegments = null; |
| if (_namedContainer!=null) |
| { |
| _qualifiedNameSegments=_namedContainer.getQualifiedNameSegments(); |
| } |
| if (_qualifiedNameSegments != null) |
| { |
| _elvis = _qualifiedNameSegments; |
| } else |
| { |
| <%org.eclipse.emf.common.util.BasicEList%><<%java.lang.String%>> _newBasicEList = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList(); |
| _elvis = _newBasicEList; |
| } |
| return _elvis;</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute default="0" ecore:unsettable="false" name="bitWidth" type="ecore:EInt"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="priority" type="ecore:EInt"/> |
| <xsd:attribute ecore:unsettable="false" name="portType" type="am:PortType"/> |
| <xsd:attribute ecore:unsettable="false" name="portInterface" type="am:PortInterface"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:transient="true" ecore:unsettable="false" ecore:volatile="true" name="delegated" type="ecore:EBoolean"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:HwConnection" ecore:transient="true" ecore:volatile="true" name="connections"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of connections (HwConnection). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:HwPathElement" name="ConnectionHandler"> |
| <xsd:complexContent> |
| <xsd:extension base="am:HwModule"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="internalConnections" type="am:HwConnection"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:ConnectionHandlerDefinition" name="definition" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:HwPathElement am:ITaggable" name="HwConnection"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <body><%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _elvis = null; |
| <%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer(); |
| <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _qualifiedNameSegments = null; |
| if (_namedContainer!=null) |
| { |
| _qualifiedNameSegments=_namedContainer.getQualifiedNameSegments(); |
| } |
| if (_qualifiedNameSegments != null) |
| { |
| _elvis = _qualifiedNameSegments; |
| } else |
| { |
| <%org.eclipse.emf.common.util.BasicEList%><<%java.lang.String%>> _newBasicEList = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList(); |
| _elvis = _newBasicEList; |
| } |
| return _elvis;</body> |
| </operation> |
| <operation name="getPorts" type="am:HwPort" unique="false" upperBound="-1"> |
| <body>return <%org.eclipse.emf.common.util.ECollections%>.<<%org.eclipse.app4mc.amalthea.model.HwPort%>>unmodifiableEList(<%org.eclipse.emf.common.util.ECollections%>.<<%org.eclipse.app4mc.amalthea.model.HwPort%>>toEList(<%org.eclipse.xtext.xbase.lib.IterableExtensions%>.<<%org.eclipse.app4mc.amalthea.model.HwPort%>>filterNull(<%org.eclipse.xtext.xbase.lib.CollectionLiterals%>.<<%org.eclipse.app4mc.amalthea.model.HwPort%>>newArrayList(this.getPort1(), this.getPort2()))));</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="readLatency" type="am:IDiscreteValueDeviation"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b>Read latency [cycles]</b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element minOccurs="0" name="writeLatency" type="am:IDiscreteValueDeviation"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b>Write latency [cycles]</b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element minOccurs="0" name="dataRate" type="am:DataRate"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:HwPort" name="port1" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:HwPort" name="port2" type="xsd:anyURI"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:transient="true" ecore:unsettable="false" ecore:volatile="true" name="internal" type="ecore:EBoolean"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:INamed" name="HwAccessElement"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ITaggable"> |
| <xsd:sequence> |
| <xsd:element ecore:opposite="containingAccessElement" minOccurs="0" name="accessPath" type="am:HwAccessPath"/> |
| <xsd:element minOccurs="0" name="readLatency" type="am:IDiscreteValueDeviation"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b>Read latency [cycles]</b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element minOccurs="0" name="writeLatency" type="am:IDiscreteValueDeviation"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b>Write latency [cycles]</b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element minOccurs="0" name="dataRate" type="am:DataRate"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:changeable="false" ecore:opposite="accessElements" ecore:reference="am:ProcessingUnit" name="source" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:HwDestination" name="destination" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="StructureType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="System"/> |
| <xsd:enumeration ecore:value="0" value="ECU"/> |
| <xsd:enumeration ecore:value="0" value="Microcontroller"/> |
| <xsd:enumeration ecore:value="0" value="SoC"/> |
| <xsd:enumeration ecore:value="0" value="Cluster"/> |
| <xsd:enumeration ecore:value="0" value="Group"/> |
| <xsd:enumeration ecore:value="0" value="Array"/> |
| <xsd:enumeration ecore:value="0" value="Area"/> |
| <xsd:enumeration ecore:value="0" value="Region"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="CacheType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="instruction"/> |
| <xsd:enumeration ecore:value="0" value="data"/> |
| <xsd:enumeration ecore:value="0" value="unified"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="PortType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="initiator"/> |
| <xsd:enumeration ecore:value="0" value="responder"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="SchedPolicy"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="RoundRobin"/> |
| <xsd:enumeration ecore:value="0" value="FCFS"/> |
| <xsd:enumeration ecore:value="0" value="PriorityBased"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="WriteStrategy"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="none"/> |
| <xsd:enumeration ecore:value="0" value="writeback"/> |
| <xsd:enumeration ecore:value="0" value="writethrough"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType abstract="true" ecore:implements="am:ITaggable" name="HwDefinition"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ProcessingUnitDefinition"> |
| <xsd:complexContent> |
| <xsd:extension base="am:HwDefinition"> |
| <xsd:attribute ecore:unsettable="false" name="puType" type="am:PuType"/> |
| <xsd:attribute ecore:reference="am:HwFeature" name="features"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:reference="am:CoreClassifier" name="classifiers"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ConnectionHandlerDefinition"> |
| <xsd:complexContent> |
| <xsd:extension base="am:HwDefinition"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="readLatency" type="am:IDiscreteValueDeviation"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b>Read latency [cycles]</b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element minOccurs="0" name="writeLatency" type="am:IDiscreteValueDeviation"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b>Write latency [cycles]</b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element minOccurs="0" name="dataRate" type="am:DataRate"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="policy" type="am:SchedPolicy"/> |
| <xsd:attribute default="1" ecore:unsettable="false" name="maxBurstSize" type="am:PositiveInt"/> |
| <xsd:attribute default="1" ecore:unsettable="false" name="maxConcurrentTransfers" type="am:PositiveInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="MemoryDefinition"> |
| <xsd:complexContent> |
| <xsd:extension base="am:HwDefinition"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="size" type="am:DataSize"/> |
| <xsd:element minOccurs="0" name="accessLatency" type="am:IDiscreteValueDeviation"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b>Access latency [cycles]</b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element minOccurs="0" name="dataRate" type="am:DataRate"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="memoryType" type="am:MemoryType"/> |
| <xsd:attribute ecore:reference="am:MemoryClassifier" name="classifiers"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="CacheDefinition"> |
| <xsd:complexContent> |
| <xsd:extension base="am:HwDefinition"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="size" type="am:DataSize"/> |
| <xsd:element minOccurs="0" name="lineSize" type="am:DataSize"/> |
| <xsd:element minOccurs="0" name="accessLatency" type="am:IDiscreteValueDeviation"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b>Access latency [cycles]</b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="cacheType" type="am:CacheType"/> |
| <xsd:attribute ecore:unsettable="false" name="writeStrategy" type="am:WriteStrategy"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="nWays" type="ecore:EInt"/> |
| <xsd:attribute default="false" ecore:unsettable="false" name="coherency" type="ecore:EBoolean"/> |
| <xsd:attribute default="false" ecore:unsettable="false" name="exclusive" type="ecore:EBoolean"/> |
| <xsd:attribute default="0.0" ecore:unsettable="false" name="hitRate" type="ecore:EDouble"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="HwPath"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getContainingAccessElement" type="am:HwAccessElement" unique="false"> |
| <body>return null;</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:ProcessingUnit" ecore:transient="true" ecore:volatile="true" name="source" type="xsd:anyURI"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:HwDestination" ecore:transient="true" ecore:volatile="true" name="destination" type="xsd:anyURI"/> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:INamed" name="HwAccessPath"> |
| <xsd:complexContent> |
| <xsd:extension base="am:HwPath"> |
| <xsd:attribute ecore:changeable="false" ecore:opposite="accessPath" ecore:reference="am:HwAccessElement" name="containingAccessElement" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:HwPathElement" name="pathElements" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute default="0" ecore:unsettable="false" name="startAddress" type="am:Address"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="endAddress" type="am:Address"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="memOffset" type="am:Address"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="HwPathElement"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getPorts" type="am:HwPort" unique="false" upperBound="-1"/> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:IReferable"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="HwDestination"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getPorts" type="am:HwPort" unique="false" upperBound="-1"/> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:IReferable"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="PuType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="GPU"/> |
| <xsd:enumeration ecore:value="0" value="CPU"/> |
| <xsd:enumeration ecore:value="0" value="Accelerator"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="PortInterface"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="custom"/> |
| <xsd:enumeration ecore:value="0" value="CAN"/> |
| <xsd:enumeration ecore:value="0" value="Flexray"/> |
| <xsd:enumeration ecore:value="0" value="LIN"/> |
| <xsd:enumeration ecore:value="0" value="MOST"/> |
| <xsd:enumeration ecore:value="0" value="Ethernet"/> |
| <xsd:enumeration ecore:value="0" value="SPI"/> |
| <xsd:enumeration ecore:value="0" value="I2C"/> |
| <xsd:enumeration ecore:value="0" value="AXI"/> |
| <xsd:enumeration ecore:value="0" value="AHB"/> |
| <xsd:enumeration ecore:value="0" value="APB"/> |
| <xsd:enumeration ecore:value="0" value="SWR"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="HwFeatureType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="performance"/> |
| <xsd:enumeration ecore:value="0" value="power"/> |
| <xsd:enumeration ecore:value="0" value="performance_and_power"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="MappingModel"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="schedulerAllocation" type="am:SchedulerAllocation"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="runnableAllocation" type="am:RunnableAllocation"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="taskAllocation" type="am:TaskAllocation"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="isrAllocation" type="am:ISRAllocation"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="memoryMapping" type="am:MemoryMapping"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="physicalSectionMapping" type="am:PhysicalSectionMapping"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="addressMappingType" type="am:MemoryAddressMappingType"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="MemoryAddressMappingType"> |
| <xsd:annotation> |
| <xsd:documentation>Defines how to interpret the memory addresses in this mapping model</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="none"/> |
| <xsd:enumeration ecore:value="0" value="address"/> |
| <xsd:enumeration ecore:value="0" value="offset"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="SchedulerAllocation"> |
| <xsd:annotation> |
| <xsd:documentation>Allocation of Schedulers</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:Scheduler" name="scheduler" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:ProcessingUnit" name="responsibility" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:reference="am:ProcessingUnit" name="executingPU" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TaskAllocation"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="schedulingParameters" type="am:SchedulingParameters"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameterExtensions" type="am:ParameterExtension"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:Task" name="task" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:TaskScheduler" name="scheduler" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:ProcessingUnit" name="affinity"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ISRAllocation"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:ISR" name="isr" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:InterruptController" name="controller" type="xsd:anyURI" use="required"/> |
| <xsd:attribute name="priority" type="ecore:EIntegerObject"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="RunnableAllocation"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:Scheduler" name="scheduler" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:Runnable" name="entity" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="MemoryMapping"> |
| <xsd:annotation> |
| <xsd:documentation>Mapping of AbstractMemoryElement (Label, Runnable, ISR, Task, ...) |
| to a specific memory.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:AbstractMemoryElement" name="abstractElement" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:Memory" name="memory" type="xsd:anyURI"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="memoryPositionAddress" type="am:Address"> |
| <xsd:annotation> |
| <xsd:documentation>The position of the element in the mapped memory</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="PhysicalSectionMapping"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute ecore:reference="am:Section" name="origin" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:reference="am:Memory" name="memory" type="xsd:anyURI" use="required"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="startAddress" type="am:Address"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="endAddress" type="am:Address"/> |
| <xsd:attribute ecore:reference="am:Label" name="labels"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:reference="am:Runnable" name="runEntities"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="OSModel"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="semaphores" type="am:Semaphore"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="operatingSystems" type="am:OperatingSystem"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="osOverheads" type="am:OsOverhead"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="OsDataConsistency"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="dataStability" type="am:DataStability"/> |
| <xsd:element minOccurs="0" name="nonAtomicDataCoherency" type="am:NonAtomicDataCoherency"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="mode" type="am:OsDataConsistencyMode"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DataStability"> |
| <xsd:attribute default="false" ecore:unsettable="false" name="enabled" type="ecore:EBoolean"/> |
| <xsd:attribute name="algorithm" type="ecore:EString"/> |
| <xsd:attribute ecore:unsettable="false" name="accessMultiplicity" type="am:AccessMultiplicity"/> |
| <xsd:attribute ecore:unsettable="false" name="level" type="am:DataStabilityLevel"/> |
| </xsd:complexType> |
| <xsd:complexType name="NonAtomicDataCoherency"> |
| <xsd:attribute default="false" ecore:unsettable="false" name="enabled" type="ecore:EBoolean"/> |
| <xsd:attribute name="algorithm" type="ecore:EString"/> |
| <xsd:attribute ecore:unsettable="false" name="accessMultiplicity" type="am:AccessMultiplicity"/> |
| </xsd:complexType> |
| <xsd:simpleType name="OsDataConsistencyMode"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="noProtection"/> |
| <xsd:enumeration ecore:value="0" value="automaticProtection"/> |
| <xsd:enumeration ecore:value="0" value="customProtection"/> |
| <xsd:enumeration ecore:value="0" value="handledByModelElements"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="AccessMultiplicity"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="singleAccess"/> |
| <xsd:enumeration ecore:value="0" value="multipleAccesses"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="DataStabilityLevel"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="period"/> |
| <xsd:enumeration ecore:value="0" value="process"/> |
| <xsd:enumeration ecore:value="0" value="scheduleSection"/> |
| <xsd:enumeration ecore:value="0" value="runnable"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="Semaphore"> |
| <xsd:annotation> |
| <xsd:documentation>name: Name of semaphore |
| maxValue: maximum number of users which can access the semaphore simultaneously |
| initialValue: number of users which access semaphore at system startup |
| priorityCeilingProtocol: enables priority ceiling for this resource</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute ecore:unsettable="false" name="semaphoreType" type="am:SemaphoreType"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="initialValue" type="ecore:EInt"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="maxValue" type="ecore:EInt"/> |
| <xsd:attribute default="false" ecore:unsettable="false" name="priorityCeilingProtocol" type="ecore:EBoolean"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:SemaphoreAccess" ecore:transient="true" ecore:volatile="true" name="semaphoreAccesses"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of accesses (SemaphoreAccess). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Component" ecore:transient="true" ecore:volatile="true" name="referringComponents"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of components the semaphore belongs to. |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="SemaphoreType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="CountingSemaphore"/> |
| <xsd:enumeration ecore:value="0" value="Resource"/> |
| <xsd:enumeration ecore:value="0" value="Spinlock"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType abstract="true" name="Scheduler"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getSchedulingAlgorithm" type="am:Algorithm" unique="false"> |
| <body>return null;</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>scheduling algorithm: The used algorithm for scheduling |
| computation items: steps to perform the scheduling algorithm</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="computationItems" type="am:ComputationItem"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:SchedulerAllocation" ecore:transient="true" ecore:volatile="true" name="schedulerAllocations"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of scheduler allocations (SchedulerAllocation). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:RunnableAllocation" ecore:transient="true" ecore:volatile="true" name="runnableAllocations"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of runnable allocations (RunnableAllocation). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TaskScheduler"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Scheduler"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="schedulingAlgorithm" type="am:TaskSchedulingAlgorithm"/> |
| <xsd:element ecore:opposite="child" minOccurs="0" name="parentAssociation" type="am:SchedulerAssociation"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:SchedulerAssociation" ecore:transient="true" ecore:volatile="true" name="childAssociations"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of child associations (SchedulerAssociation). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:TaskAllocation" ecore:transient="true" ecore:volatile="true" name="taskAllocations"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of task allocations (TaskAllocation). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:TaskScheduler" ecore:transient="true" ecore:volatile="true" name="parentScheduler" type="xsd:anyURI"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:TaskScheduler" ecore:transient="true" ecore:volatile="true" name="childSchedulers"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SchedulerAssociation"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="schedulingParameters" type="am:SchedulingParameters"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameterExtensions" type="am:ParameterExtension"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:changeable="false" ecore:opposite="parentAssociation" ecore:reference="am:TaskScheduler" name="child" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:TaskScheduler" name="parent" type="xsd:anyURI"/> |
| </xsd:complexType> |
| <xsd:complexType name="InterruptController"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Scheduler"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="schedulingAlgorithm" type="am:InterruptSchedulingAlgorithm"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:ISRAllocation" ecore:transient="true" ecore:volatile="true" name="isrAllocations"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of ISR allocations (ISRAllocation). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SchedulingParameters"> |
| <xsd:annotation> |
| <xsd:documentation>Common scheduling parameters</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="minBudget" type="am:Time"/> |
| <xsd:element minOccurs="0" name="maxBudget" type="am:Time"/> |
| <xsd:element minOccurs="0" name="replenishment" type="am:Time"/> |
| </xsd:sequence> |
| <xsd:attribute name="priority" type="ecore:EIntegerObject"/> |
| </xsd:complexType> |
| <xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="ParameterExtension"> |
| <xsd:annotation> |
| <xsd:documentation>Parameter extensions (used for scheduling algorithms)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="key" type="ecore:EString" use="required"/> |
| <xsd:attribute name="value" type="ecore:EString" use="required"/> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="Algorithm"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="InterruptSchedulingAlgorithm"> |
| <xsd:annotation> |
| <xsd:documentation>Interrupt Scheduling Algorithm</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Algorithm"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="TaskSchedulingAlgorithm"> |
| <xsd:annotation> |
| <xsd:documentation>Task Scheduling Algorithm</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Algorithm"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="FixedPriority"> |
| <xsd:annotation> |
| <xsd:documentation>Fixed Priority Scheduling</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TaskSchedulingAlgorithm"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="FixedPriorityPreemptive"> |
| <xsd:annotation> |
| <xsd:documentation>Fixed Priority Preemptive scheduling algorithm</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:FixedPriority"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="FixedPriorityPreemptiveWithBudgetEnforcement"> |
| <xsd:annotation> |
| <xsd:documentation>Fixed Priority Preemptive scheduling algorithm (with budget enforcement)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:FixedPriority"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="OSEK"> |
| <xsd:annotation> |
| <xsd:documentation>OSEK scheduling algorithm</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:FixedPriority"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DeadlineMonotonic"> |
| <xsd:annotation> |
| <xsd:documentation>task with shortest deadline has highest priority</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:FixedPriority"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="RateMonotonic"> |
| <xsd:annotation> |
| <xsd:documentation>task with shortest recurrence (i.e. period) has highest priority</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:FixedPriority"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="Pfair"> |
| <xsd:annotation> |
| <xsd:documentation>Proportionate Fair (Pfair) Scheduling |
| (global scheduling algorithm)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TaskSchedulingAlgorithm"> |
| <xsd:attribute default="0" ecore:unsettable="false" name="quantSizeNs" type="ecore:EInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="PfairPD2"> |
| <xsd:annotation> |
| <xsd:documentation>Proportionate Fair PD2 Scheduling |
| (global scheduling algorithm)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Pfair"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="PartlyPFairPD2"> |
| <xsd:annotation> |
| <xsd:documentation>Partly Proportionate Fair PD2 Scheduling |
| (global scheduling algorithm)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Pfair"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="EarlyReleaseFairPD2"> |
| <xsd:annotation> |
| <xsd:documentation>Early Release Fair PD2 Scheduling |
| (global scheduling algorithm)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Pfair"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="PartlyEarlyReleaseFairPD2"> |
| <xsd:annotation> |
| <xsd:documentation>Partly Early Release Fair PD2 Scheduling |
| (global scheduling algorithm)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Pfair"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="DynamicPriority"> |
| <xsd:annotation> |
| <xsd:documentation>Dynamic Priority Scheduling</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TaskSchedulingAlgorithm"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="LeastLocalRemainingExecutionTimeFirst"> |
| <xsd:annotation> |
| <xsd:documentation>global scheduling algorithm</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:DynamicPriority"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="EarliestDeadlineFirst"> |
| <xsd:annotation> |
| <xsd:documentation>earliest absolute deadline first</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:DynamicPriority"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="PriorityBasedRoundRobin"> |
| <xsd:annotation> |
| <xsd:documentation>all tasks with equal priority executed for certain time slice</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:DynamicPriority"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="ReservationBasedServer"> |
| <xsd:annotation> |
| <xsd:documentation>Reservation Based Server</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TaskSchedulingAlgorithm"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DeferrableServer"> |
| <xsd:annotation> |
| <xsd:documentation>Deferrable Server</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReservationBasedServer"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="PollingPeriodicServer"> |
| <xsd:annotation> |
| <xsd:documentation>Polling Periodic Server</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReservationBasedServer"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SporadicServer"> |
| <xsd:annotation> |
| <xsd:documentation>Sporadic Server</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReservationBasedServer"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ConstantBandwidthServer"> |
| <xsd:annotation> |
| <xsd:documentation>Constant Bandwidth Server</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReservationBasedServer"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ConstantBandwidthServerWithCASH"> |
| <xsd:annotation> |
| <xsd:documentation>Constant Bandwidth Server With CASH</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReservationBasedServer"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="Grouping"> |
| <xsd:annotation> |
| <xsd:documentation>logical grouping of tasks/child-schedulers</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TaskSchedulingAlgorithm"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:InterruptSchedulingAlgorithm" name="UserSpecificSchedulingAlgorithm"> |
| <xsd:annotation> |
| <xsd:documentation>allows the user to define own scheduling algorithm (TA-Toolsuite feature)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TaskSchedulingAlgorithm"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="parameterExtensions" type="am:ParameterExtension"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="PriorityBased"> |
| <xsd:annotation> |
| <xsd:documentation>Priority based Scheduling Algorithm for Interrupts</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:InterruptSchedulingAlgorithm"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:INamed" name="OperatingSystem"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="taskSchedulers" type="am:TaskScheduler"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="interruptControllers" type="am:InterruptController"/> |
| <xsd:element minOccurs="0" name="osDataConsistency" type="am:OsDataConsistency"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:OsOverhead" name="overhead" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="VendorOperatingSystem"> |
| <xsd:complexContent> |
| <xsd:extension base="am:OperatingSystem"> |
| <xsd:attribute name="osName" type="ecore:EString"/> |
| <xsd:attribute name="vendor" type="ecore:EString"/> |
| <xsd:attribute name="version" type="ecore:EString"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="OsOverhead"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="apiOverhead" type="am:OsAPIOverhead"/> |
| <xsd:element minOccurs="0" name="isrCategory1Overhead" type="am:OsISROverhead"/> |
| <xsd:element minOccurs="0" name="isrCategory2Overhead" type="am:OsISROverhead"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="OsAPIOverhead"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="apiSendMessage" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiTerminateTask" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiSchedule" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiRequestResource" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiReleaseResource" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiSetEvent" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiWaitEvent" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiClearEvent" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiActivateTask" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiEnforcedMigration" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiSuspendOsInterrupts" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiResumeOsInterrupts" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiRequestSpinlock" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiReleaseSpinlock" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiSenderReceiverRead" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiSenderReceiverWrite" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiSynchronousServerCallPoint" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiIocRead" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="apiIocWrite" type="am:Ticks"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="OsISROverhead"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="preExecutionOverhead" type="am:Ticks"/> |
| <xsd:element minOccurs="0" name="postExecutionOverhead" type="am:Ticks"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="PropertyConstraintsModel"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="allocationConstraints" type="am:CoreAllocationConstraint"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="mappingConstraints" type="am:MemoryMappingConstraint"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="CoreAllocationConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>Abstract Class, used to describe Constraints for Allocations |
| (these usually target Cores and their features/attributes)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="coreClassification" type="am:CoreClassification"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="MemoryMappingConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>Abstract Class, used to describe Constraints for Mapping |
| (these usually target Memories and their features/attributes)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="memoryClassification" type="am:MemoryClassification"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ProcessAllocationConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>ProcessAllocationConstraints describe the constraints for |
| Process-to-Core allocations</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:CoreAllocationConstraint"> |
| <xsd:attribute ecore:reference="am:Process" name="process" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ProcessPrototypeAllocationConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>ProcessPrototypeAllocationConstraints describe the constraints for |
| ProcessPrototype-to-Core allocations</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:CoreAllocationConstraint"> |
| <xsd:attribute ecore:reference="am:ProcessPrototype" name="processPrototype" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="RunnableAllocationConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>RunnableAllocationConstraints describe the constraints for |
| Runnable-to-Core allocations</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:CoreAllocationConstraint"> |
| <xsd:attribute ecore:reference="am:Runnable" name="runnable" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="AbstractElementMappingConstraint"> |
| <xsd:annotation> |
| <xsd:documentation>AbstractElementMappingConstraints describe the constraints for |
| AbstractMemoryElement-to-Memory Mapping</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:MemoryMappingConstraint"> |
| <xsd:attribute ecore:reference="am:AbstractMemoryElement" name="abstractElement" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="Classification"> |
| <xsd:annotation> |
| <xsd:documentation>Generalization for all Hardware related constraints</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:unsettable="false" name="condition" type="am:Condition"/> |
| <xsd:attribute ecore:unsettable="false" name="grouping" type="am:GroupingType"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="Condition"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="requires"/> |
| <xsd:enumeration ecore:value="0" value="excludes"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="GroupingType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="allOfThem"/> |
| <xsd:enumeration ecore:value="0" value="atLeastOneOfThem"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="CoreClassification"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Classification"> |
| <xsd:attribute ecore:reference="am:CoreClassifier" name="classifiers"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="MemoryClassification"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Classification"> |
| <xsd:attribute ecore:reference="am:MemoryClassifier" name="classifiers"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="StimuliModel"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="stimuli" type="am:Stimulus"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="clocks" type="am:Clock"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:ITaggable" name="Stimulus"> |
| <xsd:annotation> |
| <xsd:documentation>Every process/task can have one or more stimuli. |
| A stimulus activates the process</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="setModeValueList" type="am:ModeValueList"/> |
| <xsd:element minOccurs="0" name="executionCondition" type="am:ModeConditionDisjunction"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Process" ecore:transient="true" ecore:volatile="true" name="affectedProcesses"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of affected processes (Process). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ModeValueList"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="entries" type="am:ModeAssignment"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="ModeValueMapEntry"> |
| <xsd:attribute ecore:reference="am:ModeLabel" name="key" type="xsd:anyURI" use="required"/> |
| <xsd:attribute name="value" type="ecore:EString" use="required"/> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="ModeValue"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="validateInvariants" type="ecore:EBoolean" unique="false"> |
| <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/> |
| <parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);</body> |
| </operation> |
| <operation name="getLiteral" type="am:ModeLiteral" unique="false"> |
| <body><%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _xblockexpression = null; |
| { |
| <%java.lang.String%> _value = this.getValue(); |
| boolean _tripleEquals = (_value == null); |
| if (_tripleEquals) |
| { |
| return null; |
| } |
| <%org.eclipse.app4mc.amalthea.model.ModeLabel%> _label = this.getLabel(); |
| <%org.eclipse.app4mc.amalthea.model.Mode%> _mode = null; |
| if (_label!=null) |
| { |
| _mode=_label.getMode(); |
| } |
| final <%org.eclipse.app4mc.amalthea.model.Mode%> mode = _mode; |
| <%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _xifexpression = null; |
| if ((mode instanceof <%org.eclipse.app4mc.amalthea.model.EnumMode%>)) |
| { |
| final <%org.eclipse.xtext.xbase.lib.Functions.Function1%><<%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, <%java.lang.Boolean%>> _function = new <%org.eclipse.xtext.xbase.lib.Functions.Function1%><<%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, <%java.lang.Boolean%>>() |
| { |
| public <%java.lang.Boolean%> apply(final <%org.eclipse.app4mc.amalthea.model.ModeLiteral%> it) |
| { |
| <%java.lang.String%> _name = it.getName(); |
| <%java.lang.String%> _value = <%this%>.getValue(); |
| return <%java.lang.Boolean%>.valueOf(<%com.google.common.base.Objects%>.equal(_name, _value)); |
| } |
| }; |
| _xifexpression = <%org.eclipse.xtext.xbase.lib.IterableExtensions%>.<<%org.eclipse.app4mc.amalthea.model.ModeLiteral%>>findFirst(((<%org.eclipse.app4mc.amalthea.model.EnumMode%>)mode).getLiterals(), _function); |
| } |
| else |
| { |
| _xifexpression = null; |
| } |
| _xblockexpression = _xifexpression; |
| } |
| return _xblockexpression;</body> |
| </operation> |
| <operation name="getInteger" type="ecore:EIntegerObject" unique="false"> |
| <body><%java.lang.Integer%> _xblockexpression = null; |
| { |
| <%java.lang.String%> _value = this.getValue(); |
| boolean _tripleEquals = (_value == null); |
| if (_tripleEquals) |
| { |
| return null; |
| } |
| <%org.eclipse.app4mc.amalthea.model.ModeLabel%> _label = this.getLabel(); |
| <%org.eclipse.app4mc.amalthea.model.Mode%> _mode = null; |
| if (_label!=null) |
| { |
| _mode=_label.getMode(); |
| } |
| final <%org.eclipse.app4mc.amalthea.model.Mode%> mode = _mode; |
| <%java.lang.Integer%> _xifexpression = null; |
| if (((mode instanceof <%org.eclipse.app4mc.amalthea.model.NumericMode%>) && this.getValue().matches("-?\\d+"))) |
| { |
| _xifexpression = <%java.lang.Integer%>.valueOf(<%java.lang.Integer%>.parseInt(this.getValue())); |
| } |
| else |
| { |
| _xifexpression = null; |
| } |
| _xblockexpression = _xifexpression; |
| } |
| return _xblockexpression;</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:ModeLabel" name="label" type="xsd:anyURI" use="required"/> |
| <xsd:attribute name="value" type="ecore:EString" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ModeAssignment"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ModeValue"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ModeConditionDisjunction"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="isSatisfiedBy" type="ecore:EBoolean" unique="false"> |
| <parameter name="context" type="am:ModeValueMapEntry" unique="false" upperBound="-1"/> |
| <body><%org.eclipse.emf.common.util.EList%><<%org.eclipse.app4mc.amalthea.model.ModeConditionDisjunctionEntry%>> _entries = this.getEntries(); |
| for (final <%org.eclipse.app4mc.amalthea.model.ModeConditionDisjunctionEntry%> entry : _entries) |
| { |
| boolean _isSatisfiedBy = entry.isSatisfiedBy(context); |
| if (_isSatisfiedBy) |
| { |
| return true; |
| } |
| } |
| return false;</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" name="entries" type="am:ModeConditionDisjunctionEntry"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="ModeConditionDisjunctionEntry"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="isSatisfiedBy" type="ecore:EBoolean" unique="false"> |
| <parameter name="assignment" type="am:ModeValueMapEntry" unique="false" upperBound="-1"/> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="ModeCondition"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="isSatisfiedBy" type="ecore:EBoolean" unique="false"> |
| <parameter name="context" type="am:ModeValueMapEntry" unique="false" upperBound="-1"/> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ModeConditionDisjunctionEntry"> |
| <xsd:attribute ecore:unsettable="false" name="relation" type="am:RelationalOperator"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ModeCondition" name="ModeValueCondition"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="isSatisfiedBy" type="ecore:EBoolean" unique="false"> |
| <parameter name="context" type="am:ModeValueMapEntry" unique="false" upperBound="-1"/> |
| <body><%java.lang.String%> _get = null; |
| if (context!=null) |
| { |
| _get=context.get(this.getLabel()); |
| } |
| final <%java.lang.String%> labelValue = _get; |
| return ((labelValue == null) || <%com.google.common.base.Objects%>.equal(labelValue, this.getValue()));</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ModeValue"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ModeLabelCondition"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="isSatisfiedBy" type="ecore:EBoolean" unique="false"> |
| <parameter name="context" type="am:ModeValueMapEntry" unique="false" upperBound="-1"/> |
| <body><%java.lang.String%> _get = null; |
| if (context!=null) |
| { |
| _get=context.get(this.getLabel1()); |
| } |
| final <%java.lang.String%> labelValue1 = _get; |
| <%java.lang.String%> _get_1 = null; |
| if (context!=null) |
| { |
| _get_1=context.get(this.getLabel2()); |
| } |
| final <%java.lang.String%> labelValue2 = _get_1; |
| return (((labelValue1 == null) || (labelValue2 == null)) || <%com.google.common.base.Objects%>.equal(labelValue1, labelValue2));</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ModeCondition"> |
| <xsd:attribute ecore:reference="am:ModeLabel" name="label1" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:ModeLabel" name="label2" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ModeConditionConjunction"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="isSatisfiedBy" type="ecore:EBoolean" unique="false"> |
| <parameter name="context" type="am:ModeValueMapEntry" unique="false" upperBound="-1"/> |
| <body><%org.eclipse.emf.common.util.EList%><<%org.eclipse.app4mc.amalthea.model.ModeCondition%>> _entries = this.getEntries(); |
| for (final <%org.eclipse.app4mc.amalthea.model.ModeCondition%> entry : _entries) |
| { |
| boolean _isSatisfiedBy = entry.isSatisfiedBy(context); |
| boolean _not = (!_isSatisfiedBy); |
| if (_not) |
| { |
| return false; |
| } |
| } |
| return true;</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ModeConditionDisjunctionEntry"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" name="entries" type="am:ModeCondition"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="FixedPeriodic"> |
| <xsd:annotation> |
| <xsd:documentation>Stimulus that is triggered periodically. |
| offset: Time of first occurrence |
| recurrence: Time between following occurrences</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element name="recurrence" type="am:Time"/> |
| <xsd:element minOccurs="0" name="offset" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:FixedPeriodic" name="PeriodicStimulus"> |
| <xsd:annotation> |
| <xsd:documentation>Stimulus that is triggered periodically. |
| jitter: Deviation from true periodicity to real occurrence |
| minDistance: Minimal time between occurrences</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Stimulus"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="jitter" type="am:ITimeDeviation"/> |
| <xsd:element minOccurs="0" name="minDistance" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="RelativePeriodicStimulus"> |
| <xsd:annotation> |
| <xsd:documentation>Stimulus that is triggered relative to the previous occurrence. |
| offset: Time of first occurrence |
| step: Time (Deviation) between successive occurrences</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Stimulus"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="offset" type="am:Time"/> |
| <xsd:element name="nextOccurrence" type="am:ITimeDeviation"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="VariableRateStimulus"> |
| <xsd:annotation> |
| <xsd:documentation>Periodic stimulus based on other events, like rotation speed |
| clock: Time base which defines deviation of time, multiple stimuli can have the same time base</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Stimulus"> |
| <xsd:sequence> |
| <xsd:element name="step" type="am:Time"/> |
| <xsd:element name="occurrencesPerStep" type="am:IContinuousValueDeviation"/> |
| <xsd:element minOccurs="0" name="scenario" type="am:Scenario"/> |
| </xsd:sequence> |
| <xsd:attribute name="maxIncreasePerStep" type="ecore:EDoubleObject"/> |
| <xsd:attribute name="maxDecreasePerStep" type="ecore:EDoubleObject"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="Scenario"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:Clock" name="clock" type="xsd:anyURI" use="required"/> |
| <xsd:attribute default="0.0" ecore:unsettable="false" name="samplingOffset" type="am:NonNegativeDouble"/> |
| <xsd:attribute default="1.0" ecore:unsettable="false" name="samplingRecurrence" type="am:NonNegativeDouble"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:FixedPeriodic" name="PeriodicSyntheticStimulus"> |
| <xsd:annotation> |
| <xsd:documentation>Stimulus (repeated periodically) with a defined list of occurrences. |
| occurrenceTimes: List of all occurrences</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Stimulus"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" name="occurrenceTimes" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IDescription" name="CustomStimulus"> |
| <xsd:annotation> |
| <xsd:documentation>Stimulus to describe own custom types, including properties.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Stimulus"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SingleStimulus"> |
| <xsd:annotation> |
| <xsd:documentation>Single occurrence at a defined time.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Stimulus"> |
| <xsd:sequence> |
| <xsd:element name="occurrence" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="InterProcessStimulus"> |
| <xsd:annotation> |
| <xsd:documentation>Stimulus based on a explicit inter process trigger.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Stimulus"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="counter" type="am:Counter"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:InterProcessTrigger" ecore:transient="true" ecore:volatile="true" name="explicitTriggers"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of triggers (InterProcessTrigger). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:FixedPeriodic" name="PeriodicBurstStimulus"> |
| <xsd:annotation> |
| <xsd:documentation>Stimulus (repeated periodically) for burst occurrences |
| burstLength: Time frame for the burst (occurrences after the length are clipped)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Stimulus"> |
| <xsd:sequence> |
| <xsd:element name="burstLength" type="am:Time"/> |
| <xsd:element minOccurs="0" name="occurrenceMinDistance" type="am:Time"/> |
| </xsd:sequence> |
| <xsd:attribute default="0" ecore:unsettable="false" name="occurrenceCount" type="ecore:EInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="EventStimulus"> |
| <xsd:annotation> |
| <xsd:documentation>Stimulus which is activated by an event.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Stimulus"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="counter" type="am:Counter"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:TriggerEvent" name="triggeringEvents" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ArrivalCurveStimulus"> |
| <xsd:annotation> |
| <xsd:documentation>Arrival Curve Stimulus</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Stimulus"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" name="entries" type="am:ArrivalCurveEntry"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ArrivalCurveEntry"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="lowerTimeBorder" type="am:Time"/> |
| <xsd:element minOccurs="0" name="upperTimeBorder" type="am:Time"/> |
| </xsd:sequence> |
| <xsd:attribute default="0" ecore:unsettable="false" name="numberOfOccurrences" type="ecore:EInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="Clock"> |
| <xsd:annotation> |
| <xsd:documentation>Within a Scenario a Clock defines the predefined curve progression in a simulation</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ClockFunction"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Clock"> |
| <xsd:sequence> |
| <xsd:element name="period" type="am:Time"/> |
| <xsd:element name="peakToPeak" type="am:Frequency"/> |
| <xsd:element minOccurs="0" name="xOffset" type="am:Time"/> |
| <xsd:element minOccurs="0" name="yOffset" type="am:Frequency"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="curveType" type="am:CurveType"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="CurveType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="sine"/> |
| <xsd:enumeration ecore:value="0" value="triangle"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="ClockStepList"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Clock"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" name="entries" type="am:ClockStep"/> |
| <xsd:element minOccurs="0" name="period" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ClockStep"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element name="frequency" type="am:Frequency"/> |
| <xsd:element name="time" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SWModel"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="modeLiteral" type="am:ModeLiteral" unique="false"> |
| <parameter name="mode" type="ecore:EString" unique="false"/> |
| <parameter name="literal" type="ecore:EString" unique="false"/> |
| <body>if ((<%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(mode) || <%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(literal))) |
| { |
| return null; |
| } |
| <%org.eclipse.emf.common.util.EList%><<%org.eclipse.app4mc.amalthea.model.Mode%>> _modes = this.getModes(); |
| <%org.eclipse.app4mc.amalthea.model.Mode%> _findFirst = null; |
| if (_modes!=null) |
| { |
| final <%org.eclipse.xtext.xbase.lib.Functions.Function1%><<%org.eclipse.app4mc.amalthea.model.Mode%>, <%java.lang.Boolean%>> _function = new <%org.eclipse.xtext.xbase.lib.Functions.Function1%><<%org.eclipse.app4mc.amalthea.model.Mode%>, <%java.lang.Boolean%>>() |
| { |
| public <%java.lang.Boolean%> apply(final <%org.eclipse.app4mc.amalthea.model.Mode%> it) |
| { |
| return <%java.lang.Boolean%>.valueOf(((it instanceof <%org.eclipse.app4mc.amalthea.model.EnumMode%>) && <%com.google.common.base.Objects%>.equal(it.getName(), mode))); |
| } |
| }; |
| _findFirst=<%org.eclipse.xtext.xbase.lib.IterableExtensions%>.<<%org.eclipse.app4mc.amalthea.model.Mode%>>findFirst(_modes, _function); |
| } |
| <%org.eclipse.emf.common.util.EList%><<%org.eclipse.app4mc.amalthea.model.ModeLiteral%>> _literals = null; |
| if (((<%org.eclipse.app4mc.amalthea.model.EnumMode%>) _findFirst)!=null) |
| { |
| _literals=((<%org.eclipse.app4mc.amalthea.model.EnumMode%>) _findFirst).getLiterals(); |
| } |
| <%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _findFirst_1 = null; |
| if (_literals!=null) |
| { |
| final <%org.eclipse.xtext.xbase.lib.Functions.Function1%><<%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, <%java.lang.Boolean%>> _function_1 = new <%org.eclipse.xtext.xbase.lib.Functions.Function1%><<%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, <%java.lang.Boolean%>>() |
| { |
| public <%java.lang.Boolean%> apply(final <%org.eclipse.app4mc.amalthea.model.ModeLiteral%> it) |
| { |
| <%java.lang.String%> _name = it.getName(); |
| return <%java.lang.Boolean%>.valueOf(<%com.google.common.base.Objects%>.equal(_name, literal)); |
| } |
| }; |
| _findFirst_1=<%org.eclipse.xtext.xbase.lib.IterableExtensions%>.<<%org.eclipse.app4mc.amalthea.model.ModeLiteral%>>findFirst(_literals, _function_1); |
| } |
| return _findFirst_1;</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>Central instance to provide central access.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="isrs" type="am:ISR"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="tasks" type="am:Task"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="runnables" type="am:Runnable"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="labels" type="am:Label"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="channels" type="am:Channel"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="processPrototypes" type="am:ProcessPrototype"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="sections" type="am:Section"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="activations" type="am:Activation"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="events" type="am:OsEvent"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="typeDefinitions" type="am:TypeDefinition"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="customEntities" type="am:CustomEntity"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="processChains" type="am:ProcessChain"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="modes" type="am:Mode"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="modeLabels" type="am:ModeLabel"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:ITaggable" name="AbstractMemoryElement"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="size" type="am:DataSize"> |
| <xsd:annotation> |
| <xsd:documentation>Specifying the size of the element corresponding to the needed memory allocation</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:MemoryMapping" ecore:transient="true" ecore:volatile="true" name="mappings"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of mappings (MemoryMapping). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="AbstractProcess"> |
| <xsd:complexContent> |
| <xsd:extension base="am:AbstractMemoryElement"> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Component" ecore:transient="true" ecore:volatile="true" name="referringComponents"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of components the abstract process belongs to. |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IDescription" name="CustomEntity"> |
| <xsd:annotation> |
| <xsd:documentation>Possibility to define general custom elements</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:AbstractMemoryElement"> |
| <xsd:attribute name="typeName" type="ecore:EString"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ProcessChain"> |
| <xsd:annotation> |
| <xsd:documentation>Groups a list of processes to a process chain. |
| This does not define how the processes are chained, like being executed by one parent or like they trigger each other |
| This just defines that the processes should be chained.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute ecore:reference="am:Process" name="processes"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="Process"> |
| <xsd:annotation> |
| <xsd:documentation>Generalizes interrupt service routines and tasks</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:AbstractProcess"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="activityGraph" type="am:ActivityGraph"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:Stimulus" name="stimuli"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="IActivityGraphItemContainer"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="items" type="am:ActivityGraphItem"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IActivityGraphItemContainer" name="ActivityGraph"> |
| <xsd:annotation> |
| <xsd:documentation>Describes the different execution paths of a process or runnable</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="ActivityGraphItem"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract item of a call graph</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Process" ecore:transient="true" ecore:volatile="true" name="containingProcess" type="xsd:IDREF"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Runnable" ecore:transient="true" ecore:volatile="true" name="containingRunnable" type="xsd:IDREF"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:ActivityGraph" ecore:transient="true" ecore:volatile="true" name="containingActivityGraph" type="xsd:IDREF"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ModeSwitch"> |
| <xsd:annotation> |
| <xsd:documentation>A switch in the call graph, the selected path depends on the value of the provided mode conditions</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="entries" type="am:ModeSwitchEntry"/> |
| <xsd:element minOccurs="0" name="defaultEntry" type="am:ModeSwitchDefault"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:INamed am:IActivityGraphItemContainer" name="ModeSwitchEntry"> |
| <xsd:annotation> |
| <xsd:documentation>A switch entry for a ModeSwitch. |
| It describes a path of the switch and the required mode condition to use this path</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element name="condition" type="am:ModeConditionDisjunction"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IActivityGraphItemContainer" name="ModeSwitchDefault"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ProbabilitySwitch"> |
| <xsd:annotation> |
| <xsd:documentation>A switch in the call graph, each path has a probability</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="entries" type="am:ProbabilitySwitchEntry"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IActivityGraphItemContainer" name="ProbabilitySwitchEntry"> |
| <xsd:annotation> |
| <xsd:documentation>A switch entry for a ProbabilitySwitch |
| It describes a path of the switch and it's probability</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute default="0.0" ecore:unsettable="false" name="probability" type="ecore:EDouble"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="Counter"> |
| <xsd:annotation> |
| <xsd:documentation>A counter for the call sequence items</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute default="1" ecore:unsettable="false" name="prescaler" type="am:PositiveLong"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="offset" type="am:NonNegativeLong"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="WaitEvent"> |
| <xsd:annotation> |
| <xsd:documentation>Let the process wait for a combination of events defined by eventMask |
| maskType defines if the events in eventMask are linked by a AND or OR</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="eventMask" type="am:EventMask"/> |
| <xsd:element minOccurs="0" name="counter" type="am:Counter"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="maskType" type="am:WaitEventType"/> |
| <xsd:attribute ecore:unsettable="false" name="waitingBehaviour" type="am:WaitingBehaviour"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="WaitEventType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="AND"/> |
| <xsd:enumeration ecore:value="0" value="OR"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="WaitingBehaviour"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="active"/> |
| <xsd:enumeration ecore:value="0" value="passive"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="SetEvent"> |
| <xsd:annotation> |
| <xsd:documentation>Sets the events of eventMask |
| These events can be set for a specific process, if there is no process, is is global (for all processes) |
| If there is a process, it is possible to set the event for a specific process instance that is currently activated</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="eventMask" type="am:EventMask"/> |
| <xsd:element minOccurs="0" name="counter" type="am:Counter"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:Process" name="process" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ClearEvent"> |
| <xsd:annotation> |
| <xsd:documentation>Clears the events of eventMask</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="eventMask" type="am:EventMask"/> |
| <xsd:element minOccurs="0" name="counter" type="am:Counter"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="EventMask"> |
| <xsd:annotation> |
| <xsd:documentation>A event mask</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:OsEvent" name="events"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ITaggable" name="OsEvent"> |
| <xsd:annotation> |
| <xsd:documentation>A event that can be set, cleared and waited for by a process</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute default="0" ecore:unsettable="false" name="communicationOverheadInBit" type="ecore:EInt"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Component" ecore:transient="true" ecore:volatile="true" name="referringComponents"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of components the OS event belongs to. |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="InterProcessTrigger"> |
| <xsd:annotation> |
| <xsd:documentation>Triggers a stimulus to activate its processes</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="counter" type="am:Counter"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:InterProcessStimulus" name="stimulus" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="EnforcedMigration"> |
| <xsd:annotation> |
| <xsd:documentation>Migrates task to core of resource owner</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:attribute ecore:reference="am:TaskScheduler" name="resourceOwner" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SchedulePoint"> |
| <xsd:annotation> |
| <xsd:documentation>Triggers scheduler</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="TerminateProcess"> |
| <xsd:annotation> |
| <xsd:documentation>Terminates the process</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="counter" type="am:Counter"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="Task"> |
| <xsd:annotation> |
| <xsd:documentation>Schedulable entity, which is managed by the OS. An instance of a Task is mapped to exactly one core |
| and includes the direct representation of all abstractions.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Process"> |
| <xsd:attribute ecore:unsettable="false" name="preemption" type="am:Preemption"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="multipleTaskActivationLimit" type="ecore:EInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ISR"> |
| <xsd:annotation> |
| <xsd:documentation>Interrupt service routine</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Process"> |
| <xsd:attribute ecore:unsettable="false" name="category" type="am:ISRCategory"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="ISRCategory"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="CATEGORY_1"/> |
| <xsd:enumeration ecore:value="0" value="CATEGORY_2"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="ProcessPrototype"> |
| <xsd:annotation> |
| <xsd:documentation>Prototype class for Process. |
| It does contain meta information of potential processes, which does not represent the final state. |
| The final state can be several Tasks, which can be computed using provided information of this prototype.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:AbstractProcess"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="accessPrecedenceSpec" type="am:AccessPrecedenceSpec"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the general label accesses</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="orderPrecedenceSpec" type="am:OrderPrecedenceSpec"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the general order of runnables</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="chainedPrototypes" type="am:ChainedProcessPrototype"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="runnableCalls" type="am:RunnableCall"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:unsettable="false" name="preemption" type="am:Preemption"/> |
| <xsd:attribute ecore:reference="am:Runnable" name="firstRunnable" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:Runnable" name="lastRunnable" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:Activation" name="activation" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ChainedProcessPrototype"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:ProcessPrototype" name="prototype" type="xsd:anyURI" use="required"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="apply" type="ecore:EInt"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="offset" type="ecore:EInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="GeneralPrecedence"> |
| <xsd:annotation> |
| <xsd:documentation>General abstraction for precedence</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:Runnable" name="origin" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:Runnable" name="target" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="AccessPrecedenceSpec"> |
| <xsd:complexContent> |
| <xsd:extension base="am:GeneralPrecedence"> |
| <xsd:attribute ecore:reference="am:Label" name="label" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:unsettable="false" name="orderType" type="am:AccessPrecedenceType"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="AccessPrecedenceType"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the access precedence at the time of one task period.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="defaultWR"> |
| <xsd:annotation> |
| <xsd:documentation>Writer of label has to be performed before the reader.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:enumeration> |
| <xsd:enumeration ecore:value="0" value="ignoreWR"> |
| <xsd:annotation> |
| <xsd:documentation>Dependency between writer and reader can be ignored.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:enumeration> |
| <xsd:enumeration ecore:value="0" value="enforceRW"> |
| <xsd:annotation> |
| <xsd:documentation>Reader of label has to be performed before the writer (delay unit of controller).</xsd:documentation> |
| </xsd:annotation> |
| </xsd:enumeration> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="OrderPrecedenceSpec"> |
| <xsd:complexContent> |
| <xsd:extension base="am:GeneralPrecedence"> |
| <xsd:attribute ecore:unsettable="false" name="orderType" type="am:OrderType"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="OrderType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="order"> |
| <xsd:annotation> |
| <xsd:documentation>Defines a general order, the included elements must not follow directly</xsd:documentation> |
| </xsd:annotation> |
| </xsd:enumeration> |
| <xsd:enumeration ecore:value="0" value="directOrder"> |
| <xsd:annotation> |
| <xsd:documentation>The defined elements must follow directly</xsd:documentation> |
| </xsd:annotation> |
| </xsd:enumeration> |
| <xsd:enumeration ecore:value="0" value="startSequence"/> |
| <xsd:enumeration ecore:value="0" value="endSequence"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="DirectionType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="in"/> |
| <xsd:enumeration ecore:value="0" value="out"/> |
| <xsd:enumeration ecore:value="0" value="inout"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="IDependsOn"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="dependsOn" type="am:DataDependency"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType name="DataDependency"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:Label" name="labels"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:reference="am:RunnableParameter" name="parameters"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:reference="am:CallArgument" name="callArguments"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Runnable" ecore:transient="true" ecore:volatile="true" name="containingRunnable" type="xsd:IDREF"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IDependsOn" name="RunnableParameter"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <body><%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _elvis = null; |
| <%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable(); |
| <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _qualifiedNameSegments = null; |
| if (_containingRunnable!=null) |
| { |
| _qualifiedNameSegments=_containingRunnable.getQualifiedNameSegments(); |
| } |
| if (_qualifiedNameSegments != null) |
| { |
| _elvis = _qualifiedNameSegments; |
| } else |
| { |
| <%org.eclipse.emf.common.util.BasicEList%><<%java.lang.String%>> _newBasicEList = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList(); |
| _elvis = _newBasicEList; |
| } |
| return _elvis;</body> |
| </operation> |
| <operation name="toString" type="ecore:EString" unique="false"> |
| <body><%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable(); |
| <%java.lang.String%> _name = null; |
| if (_containingRunnable!=null) |
| { |
| _name=_containingRunnable.getName(); |
| } |
| final <%java.lang.String%> runName = _name; |
| <%java.lang.String%> _xifexpression = null; |
| boolean _isNullOrEmpty = <%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(runName); |
| if (_isNullOrEmpty) |
| { |
| _xifexpression = "<runnable>"; |
| } |
| else |
| { |
| _xifexpression = runName; |
| } |
| <%java.lang.String%> _plus = (_xifexpression + "::"); |
| <%java.lang.String%> _xifexpression_1 = null; |
| boolean _isNullOrEmpty_1 = <%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName()); |
| if (_isNullOrEmpty_1) |
| { |
| _xifexpression_1 = "<parameter>"; |
| } |
| else |
| { |
| _xifexpression_1 = this.getName(); |
| } |
| return (_plus + _xifexpression_1);</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute ecore:changeable="false" ecore:opposite="parameters" ecore:reference="am:Runnable" name="containingRunnable" type="xsd:anyURI"/> |
| <xsd:attribute ecore:unsettable="false" name="direction" type="am:DirectionType"/> |
| <xsd:attribute ecore:reference="am:TypeDefinition" name="dataType" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:INamespaceMember" name="Runnable"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getRunnableItems" type="am:ActivityGraphItem" unique="false" upperBound="-1"> |
| <body><%org.eclipse.emf.common.util.EList%><<%org.eclipse.app4mc.amalthea.model.ActivityGraphItem%>> _xblockexpression = null; |
| { |
| <%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _activityGraph = this.getActivityGraph(); |
| boolean _tripleEquals = (_activityGraph == null); |
| if (_tripleEquals) |
| { |
| this.setActivityGraph(<%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createActivityGraph()); |
| } |
| _xblockexpression = this.getActivityGraph().getItems(); |
| } |
| return _xblockexpression;</body> |
| </operation> |
| <operation name="getFirstActivation" type="am:Activation" unique="false"> |
| <body>return <%org.eclipse.xtext.xbase.lib.IterableExtensions%>.<<%org.eclipse.app4mc.amalthea.model.Activation%>>head(this.getActivations());</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>Smallest allocatable unit, which provides additional (optional) attributes for allocation algorithms.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:AbstractMemoryElement"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="executionCondition" type="am:ModeConditionDisjunction"/> |
| <xsd:element ecore:opposite="containingRunnable" maxOccurs="unbounded" minOccurs="0" name="parameters" type="am:RunnableParameter"/> |
| <xsd:element minOccurs="0" name="activityGraph" type="am:ActivityGraph"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:Activation" name="activations"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute default="false" ecore:unsettable="false" name="callback" type="ecore:EBoolean"> |
| <xsd:annotation> |
| <xsd:documentation>Marker if runnable is used as callback.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute default="false" ecore:unsettable="false" name="service" type="ecore:EBoolean"> |
| <xsd:annotation> |
| <xsd:documentation>Marker if runnable is used as a service.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute ecore:unsettable="false" name="asilLevel" type="am:ASILType"> |
| <xsd:annotation> |
| <xsd:documentation>ASIL level for the runnable entity</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute ecore:reference="am:Section" name="section" type="xsd:anyURI"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:RunnableCall" ecore:transient="true" ecore:volatile="true" name="runnableCalls"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of callers (RunnableCalls). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Component" ecore:transient="true" ecore:volatile="true" name="referringComponents"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of components the runnable belongs to. |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IDisplayName am:INamespaceMember" name="Label"> |
| <xsd:annotation> |
| <xsd:documentation>Data representation, which can be accessed by run entities.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:AbstractMemoryElement"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="dataType" type="am:DataType"/> |
| </xsd:sequence> |
| <xsd:attribute default="false" ecore:unsettable="false" name="constant" type="ecore:EBoolean"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the label as a constant, not modifiable entity</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute default="false" ecore:unsettable="false" name="bVolatile" type="ecore:EBoolean"> |
| <xsd:annotation> |
| <xsd:documentation>Defines if the label value is volatile or persistent to survive shutdown and start of system</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute ecore:unsettable="false" name="dataStability" type="am:LabelDataStability"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the data stability needs of the label</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute ecore:unsettable="false" name="stabilityLevel" type="am:DataStabilityLevel"/> |
| <xsd:attribute ecore:reference="am:Section" name="section" type="xsd:anyURI"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:LabelAccess" ecore:transient="true" ecore:volatile="true" name="labelAccesses"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of accesses (LabelAccess). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Component" ecore:transient="true" ecore:volatile="true" name="referringComponents"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of components the label belongs to. |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IDisplayName am:INamespaceMember" name="Channel"> |
| <xsd:complexContent> |
| <xsd:extension base="am:AbstractMemoryElement"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="elementType" type="am:DataType"/> |
| </xsd:sequence> |
| <xsd:attribute default="0" ecore:unsettable="false" name="defaultElements" type="ecore:EInt"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="maxElements" type="ecore:EInt"/> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:ChannelAccess" ecore:transient="true" ecore:volatile="true" name="channelAccesses"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of accesses (ChannelAccess). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IDisplayName" name="ModeLabel"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="validateInvariants" type="ecore:EBoolean" unique="false"> |
| <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/> |
| <parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);</body> |
| </operation> |
| <operation name="isEnum" type="ecore:EBoolean" unique="false"> |
| <body><%org.eclipse.app4mc.amalthea.model.Mode%> _mode = this.getMode(); |
| return (_mode instanceof <%org.eclipse.app4mc.amalthea.model.EnumMode%>);</body> |
| </operation> |
| <operation name="isNumeric" type="ecore:EBoolean" unique="false"> |
| <body><%org.eclipse.app4mc.amalthea.model.Mode%> _mode = this.getMode(); |
| return (_mode instanceof <%org.eclipse.app4mc.amalthea.model.NumericMode%>);</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:AbstractMemoryElement"> |
| <xsd:attribute ecore:reference="am:Mode" name="mode" type="xsd:anyURI" use="required"/> |
| <xsd:attribute name="initialValue" type="ecore:EString"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="LabelDataStability"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="noProtection"/> |
| <xsd:enumeration ecore:value="0" value="automaticProtection"/> |
| <xsd:enumeration ecore:value="0" value="customProtection"/> |
| <xsd:enumeration ecore:value="0" value="handledByModelElements"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="Section"> |
| <xsd:annotation> |
| <xsd:documentation>A section is a logical structure, which contains labels and abstract run entities. |
| It is used to provide an easy mechanism to distribute objects to memory, |
| which are belonging together.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:attribute ecore:unsettable="false" name="asilLevel" type="am:ASILType"> |
| <xsd:annotation> |
| <xsd:documentation>for specifying the ASIL level for the "virtual memory sections"</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Label" ecore:transient="true" ecore:volatile="true" name="labels"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of labels (Label). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Runnable" ecore:transient="true" ecore:volatile="true" name="runnables"> |
| <xsd:annotation> |
| <xsd:documentation> |
| <p> |
| <b> |
| Returns an |
| <em>immutable</em> |
| list of runnables (Runnable). |
| </b> |
| </p> |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="ComputationItem"> |
| <xsd:annotation> |
| <xsd:documentation>Representation of a object that describes computation</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ExecutionNeed"> |
| <xsd:annotation> |
| <xsd:documentation>Representation of the execution needs of a Runnable (default and core-specific)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="needs" type="am:NeedEntry"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="NeedEntry"> |
| <xsd:sequence> |
| <xsd:element name="value" type="am:IDiscreteValueDeviation"/> |
| </xsd:sequence> |
| <xsd:attribute name="key" type="ecore:EString" use="required"/> |
| </xsd:complexType> |
| <xsd:complexType name="Ticks"> |
| <xsd:annotation> |
| <xsd:documentation>Representation of the execution IDiscreteValueDeviation of a Runnable (default and core-specific)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ComputationItem"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="default" type="am:IDiscreteValueDeviation"/> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="extended" type="am:TicksEntry"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="TicksEntry"> |
| <xsd:sequence> |
| <xsd:element name="value" type="am:IDiscreteValueDeviation"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:ProcessingUnitDefinition" name="key" type="xsd:anyURI" use="required"/> |
| </xsd:complexType> |
| <xsd:simpleType name="ModeLabelAccessEnum"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="read"/> |
| <xsd:enumeration ecore:value="0" value="set"/> |
| <xsd:enumeration ecore:value="0" value="increment"/> |
| <xsd:enumeration ecore:value="0" value="decrement"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="ModeLabelAccess"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="validateInvariants" type="ecore:EBoolean" unique="false"> |
| <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/> |
| <parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/> |
| <body>return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);</body> |
| </operation> |
| </xsd:appinfo> |
| <xsd:documentation>Representation of a mode label access of a run entity.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:attribute ecore:reference="am:ModeLabel" name="data" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:unsettable="false" name="access" type="am:ModeLabelAccessEnum"/> |
| <xsd:attribute name="value" type="ecore:EString"> |
| <xsd:annotation> |
| <xsd:documentation>Just used in case that this access writes a value to a Mode-Label. |
| It can be used to define which mode value is written to the label.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute default="1" ecore:unsettable="false" name="step" type="am:PositiveInt"> |
| <xsd:annotation> |
| <xsd:documentation>Just used in case of increment or decrement. |
| It can be used to define a step other than 1.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ITaggable am:IDependsOn" name="LabelAccess"> |
| <xsd:annotation> |
| <xsd:documentation>Representation of a label access of a run entity.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ComputationItem"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="statistic" type="am:LabelAccessStatistic"> |
| <xsd:annotation> |
| <xsd:documentation>Optional parameter for statistic values</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element minOccurs="0" name="transmissionPolicy" type="am:TransmissionPolicy"> |
| <xsd:annotation> |
| <xsd:documentation>Optional parameter for transmission policy of larger data</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:Label" name="data" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:unsettable="false" name="access" type="am:LabelAccessEnum"/> |
| <xsd:attribute ecore:unsettable="false" name="dataStability" type="am:LabelAccessDataStability"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the data stability needs of the label access</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute ecore:unsettable="false" name="implementation" type="am:LabelAccessImplementation"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="ChannelAccess"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="transmissionPolicy" type="am:TransmissionPolicy"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:Channel" name="data" type="xsd:anyURI" use="required"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="elements" type="ecore:EInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ChannelSend"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ChannelAccess"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ChannelReceive"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ChannelAccess"> |
| <xsd:attribute ecore:unsettable="false" name="receiveOperation" type="am:ReceiveOperation"/> |
| <xsd:attribute default="false" ecore:unsettable="false" name="dataMustBeNew" type="ecore:EBoolean"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="elementIndex" type="ecore:EInt"/> |
| <xsd:attribute default="0" ecore:unsettable="false" name="lowerBound" type="ecore:EInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="ReceiveOperation"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="FIFO_Read"/> |
| <xsd:enumeration ecore:value="0" value="FIFO_Take"/> |
| <xsd:enumeration ecore:value="0" value="LIFO_Read"/> |
| <xsd:enumeration ecore:value="0" value="LIFO_Take"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="LabelAccessDataStability"> |
| <xsd:annotation> |
| <xsd:documentation>Defines the data stability needs of a label access. |
| Inherited means that the setting of the Label is used</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="inherited"/> |
| <xsd:enumeration ecore:value="0" value="noProtection"/> |
| <xsd:enumeration ecore:value="0" value="automaticProtection"/> |
| <xsd:enumeration ecore:value="0" value="customProtection"/> |
| <xsd:enumeration ecore:value="0" value="handledByModelElements"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="LabelAccessEnum"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="read"/> |
| <xsd:enumeration ecore:value="0" value="write"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="LabelAccessImplementation"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="explicit"/> |
| <xsd:enumeration ecore:value="0" value="implicit"/> |
| <xsd:enumeration ecore:value="0" value="timed"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="SemaphoreAccess"> |
| <xsd:annotation> |
| <xsd:documentation>Describes an semaphore access</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:attribute ecore:reference="am:Semaphore" name="semaphore" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:unsettable="false" name="access" type="am:SemaphoreAccessEnum"/> |
| <xsd:attribute ecore:unsettable="false" name="waitingBehaviour" type="am:WaitingBehaviour"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="SemaphoreAccessEnum"> |
| <xsd:annotation> |
| <xsd:documentation>request: requests access to semaphore |
| release: release accessed semaphore |
| exclusive: gets access to requested semaphore only when there is no other user accessing it</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="request"/> |
| <xsd:enumeration ecore:value="0" value="exclusive"/> |
| <xsd:enumeration ecore:value="0" value="release"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType abstract="true" name="SenderReceiverCommunication"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract description for sender-receiver-communication (it can be read or write)</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:attribute default="false" ecore:unsettable="false" name="buffered" type="ecore:EBoolean"/> |
| <xsd:attribute ecore:reference="am:Label" name="label" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:ComponentPort" name="port" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SenderReceiverRead"> |
| <xsd:annotation> |
| <xsd:documentation>The read operation of the receiver of the sender-receiver-communication</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:SenderReceiverCommunication"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SenderReceiverWrite"> |
| <xsd:annotation> |
| <xsd:documentation>The write operation of the sender of the sender-receiver-communication |
| It contains the runnables that have the corresponding SenderReceiverRead</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:SenderReceiverCommunication"> |
| <xsd:attribute ecore:reference="am:Runnable" name="notifiedRunnables"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" name="ServerCall"> |
| <xsd:annotation> |
| <xsd:documentation>An abstract description for client/server communication |
| It refers to a required runnable that describes the called server operation</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:attribute ecore:reference="am:Runnable" name="serverRunnable" type="xsd:anyURI" use="required"/> |
| <xsd:attribute ecore:reference="am:ComponentPort" name="port" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SynchronousServerCall"> |
| <xsd:annotation> |
| <xsd:documentation>A synchronous server call</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ServerCall"> |
| <xsd:attribute ecore:unsettable="false" name="waitingBehaviour" type="am:WaitingBehaviour"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="AsynchronousServerCall"> |
| <xsd:annotation> |
| <xsd:documentation>A asynchronous server call |
| It refers to a optional runnable that exploits the results produced by the server</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ServerCall"> |
| <xsd:attribute ecore:reference="am:Runnable" name="resultRunnable" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="GetResultServerCall"> |
| <xsd:annotation> |
| <xsd:documentation>Get the result of a previous asynchronous server call</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ServerCall"> |
| <xsd:attribute ecore:unsettable="false" name="blockingType" type="am:BlockingType"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="BlockingType"> |
| <xsd:annotation> |
| <xsd:documentation>Blocking type</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="active_wait"/> |
| <xsd:enumeration ecore:value="0" value="passive_wait"/> |
| <xsd:enumeration ecore:value="0" value="non_blocking"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType ecore:implements="am:INamed am:IActivityGraphItemContainer" name="Group"> |
| <xsd:annotation> |
| <xsd:documentation>Describes a group of deviation runnable items</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:attribute default="true" ecore:unsettable="false" name="ordered" type="ecore:EBoolean"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IDependsOn" name="CallArgument"> |
| <xsd:annotation> |
| <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore"> |
| <operation name="getName" type="ecore:EString" unique="false"> |
| <body><%java.lang.String%> _xifexpression = null; |
| boolean _isNullOrEmpty = <%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName()); |
| if (_isNullOrEmpty) |
| { |
| _xifexpression = "access-1"; |
| } |
| else |
| { |
| _xifexpression = super.getName(); |
| } |
| return _xifexpression;</body> |
| </operation> |
| <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1"> |
| <body>final <%org.eclipse.emf.common.util.BasicEList%><<%java.lang.String%>> segments = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList(); |
| <%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall(); |
| <%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _containingActivityGraph = null; |
| if (_containingCall!=null) |
| { |
| _containingActivityGraph=_containingCall.getContainingActivityGraph(); |
| } |
| <%org.eclipse.emf.ecore.EObject%> _eContainer = null; |
| if (_containingActivityGraph!=null) |
| { |
| _eContainer=_containingActivityGraph.eContainer(); |
| } |
| final <%org.eclipse.app4mc.amalthea.model.IReferable%> runnableOrProcess = ((<%org.eclipse.app4mc.amalthea.model.IReferable%>) _eContainer); |
| if ((runnableOrProcess != null)) |
| { |
| segments.addAll(runnableOrProcess.getQualifiedNameSegments()); |
| } |
| segments.add("calls"); |
| <%java.util.List%><<%java.lang.String%>> _elvis = null; |
| <%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall(); |
| <%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null; |
| if (_containingCall_1!=null) |
| { |
| _runnable=_containingCall_1.getRunnable(); |
| } |
| <%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _qualifiedNameSegments = null; |
| if (_runnable!=null) |
| { |
| _qualifiedNameSegments=_runnable.getQualifiedNameSegments(); |
| } |
| if (_qualifiedNameSegments != null) |
| { |
| _elvis = _qualifiedNameSegments; |
| } else |
| { |
| _elvis = java.util.Collections.<<%java.lang.String%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.<<%java.lang.String%>>newArrayList("")); |
| } |
| segments.addAll(_elvis); |
| segments.add("param"); |
| <%java.lang.String%> _elvis_1 = null; |
| <%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter(); |
| <%java.lang.String%> _name = null; |
| if (_parameter!=null) |
| { |
| _name=_parameter.getName(); |
| } |
| if (_name != null) |
| { |
| _elvis_1 = _name; |
| } else |
| { |
| _elvis_1 = ""; |
| } |
| segments.add(_elvis_1); |
| return segments;</body> |
| </operation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableObject"> |
| <xsd:attribute ecore:changeable="false" ecore:opposite="arguments" ecore:reference="am:RunnableCall" name="containingCall" type="xsd:anyURI"/> |
| <xsd:attribute ecore:reference="am:RunnableParameter" name="parameter" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ITaggable" name="RunnableCall"> |
| <xsd:annotation> |
| <xsd:documentation>Representation of a runnable call of a run entity.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:sequence> |
| <xsd:element ecore:opposite="containingCall" maxOccurs="unbounded" minOccurs="0" name="arguments" type="am:CallArgument"/> |
| <xsd:element minOccurs="0" name="counter" type="am:Counter"/> |
| <xsd:element minOccurs="0" name="statistic" type="am:RunEntityCallStatistic"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:Runnable" name="runnable" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="Preemption"> |
| <xsd:annotation> |
| <xsd:documentation>Preemption type for scheduling</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="preemptive"/> |
| <xsd:enumeration ecore:value="0" value="cooperative"/> |
| <xsd:enumeration ecore:value="0" value="non_preemptive"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="ConcurrencyType"> |
| <xsd:annotation> |
| <xsd:documentation>Concurrency type of an entity</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="SingleCoreSafe"> |
| <xsd:annotation> |
| <xsd:documentation>Safe for access inside of the same core</xsd:documentation> |
| </xsd:annotation> |
| </xsd:enumeration> |
| <xsd:enumeration ecore:value="0" value="MultiCoreSafe"> |
| <xsd:annotation> |
| <xsd:documentation>Safe for access from another core</xsd:documentation> |
| </xsd:annotation> |
| </xsd:enumeration> |
| <xsd:enumeration ecore:value="0" value="SingleCorePrioSafe"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="CustomEventTrigger"> |
| <xsd:annotation> |
| <xsd:documentation>Explicitly trigger a custom event from a runnable.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ActivityGraphItem"> |
| <xsd:attribute ecore:reference="am:CustomEvent" name="event" type="xsd:anyURI" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:interface="true" name="DataType"> |
| <xsd:annotation> |
| <xsd:documentation>Central access point for different data type definitions</xsd:documentation> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:DataType" name="CompoundType"> |
| <xsd:annotation> |
| <xsd:documentation>Couple of compound data types</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:ITaggable" name="Struct"> |
| <xsd:annotation> |
| <xsd:documentation>Representing a struct definition, containing different entries</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:CompoundType"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="entries" type="am:StructEntry"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:INamed am:ITaggable" name="StructEntry"> |
| <xsd:annotation> |
| <xsd:documentation>Representation of one struct entry</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="dataType" type="am:DataType"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="Array"> |
| <xsd:annotation> |
| <xsd:documentation>Representation of an array data type</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:CompoundType"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="dataType" type="am:DataType"/> |
| </xsd:sequence> |
| <xsd:attribute default="0" ecore:unsettable="false" name="numberElements" type="ecore:EInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="Pointer"> |
| <xsd:annotation> |
| <xsd:documentation>Representing a pointer</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:CompoundType"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="dataType" type="am:DataType"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:DataType" name="TypeRef"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute ecore:reference="am:TypeDefinition" name="typeDef" type="xsd:anyURI"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="Alias"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:attribute name="target" type="ecore:EString"> |
| <xsd:annotation> |
| <xsd:documentation>Name of the target environment</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="alias" type="ecore:EString"> |
| <xsd:annotation> |
| <xsd:documentation>Corresponding name in the target environment</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:INamespaceMember" name="TypeDefinition"> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="size" type="am:DataSize"> |
| <xsd:annotation> |
| <xsd:documentation>Size of the defined data type</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="DataTypeDefinition"> |
| <xsd:complexContent> |
| <xsd:extension base="am:TypeDefinition"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="dataType" type="am:DataType"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="BaseTypeDefinition"> |
| <xsd:annotation> |
| <xsd:documentation>Basic data type definition, including naming (alias) in target environments</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:TypeDefinition"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" name="aliases" type="am:Alias"> |
| <xsd:annotation> |
| <xsd:documentation>Naming in different target environments</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType abstract="true" ecore:implements="am:ITaggable" name="Activation"> |
| <xsd:annotation> |
| <xsd:documentation>General abstraction for activation source. |
| Used for first definition of an activation rate, which is later refined by stimulus.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:ReferableBaseObject"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="PeriodicActivation"> |
| <xsd:annotation> |
| <xsd:documentation>Min and Max execution frequency within a task or timeslice</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Activation"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="min" type="am:Time"/> |
| <xsd:element minOccurs="0" name="max" type="am:Time"/> |
| <xsd:element name="recurrence" type="am:Time"/> |
| <xsd:element minOccurs="0" name="offset" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IDescription" name="VariableRateActivation"> |
| <xsd:annotation> |
| <xsd:documentation>Periodic activation based on other events, like rotation speed</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Activation"> |
| <xsd:sequence> |
| <xsd:element name="step" type="am:Time"/> |
| <xsd:element name="occurrencesPerStep" type="am:IContinuousValueDeviation"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IDescription" name="SporadicActivation"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Activation"> |
| <xsd:sequence> |
| <xsd:element name="occurrence" type="am:ITimeDeviation"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="SingleActivation"> |
| <xsd:annotation> |
| <xsd:documentation>A single activation between time min and max</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Activation"> |
| <xsd:sequence> |
| <xsd:element name="min" type="am:Time"/> |
| <xsd:element name="max" type="am:Time"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="EventActivation"> |
| <xsd:annotation> |
| <xsd:documentation>Activation which is triggered by an event.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:Activation"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="counter" type="am:Counter"/> |
| </xsd:sequence> |
| <xsd:attribute ecore:reference="am:TriggerEvent" name="triggeringEvents" use="required"> |
| <xsd:simpleType> |
| <xsd:list itemType="xsd:anyURI"/> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType ecore:implements="am:IDescription" name="CustomActivation"> |
| <xsd:complexContent> |
| <xsd:extension base="am:Activation"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="LabelAccessStatistic"> |
| <xsd:annotation> |
| <xsd:documentation>Contains information about access statistic values</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="value" type="am:NumericStatistic"/> |
| <xsd:element minOccurs="0" name="cacheMisses" type="am:NumericStatistic"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="RunEntityCallStatistic"> |
| <xsd:complexContent> |
| <xsd:extension base="am:BaseObject"> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="statistic" type="am:NumericStatistic"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:simpleType name="ASILType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="_undefined_"/> |
| <xsd:enumeration ecore:value="0" value="D"/> |
| <xsd:enumeration ecore:value="0" value="C"/> |
| <xsd:enumeration ecore:value="0" value="B"/> |
| <xsd:enumeration ecore:value="0" value="A"/> |
| <xsd:enumeration ecore:value="0" value="QM"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:schema> |