1234567891011121314151617181920212223242526272829303132 |
- '''This file is part of AToMPM - A Tool for Multi-Paradigm Modelling
- Copyright 2011 by the AToMPM team and licensed under the LGPL
- See COPYING.lesser and README.md in the root of this project for full details'''
- from ..tcore.composer import Composer
- class Sequence(Composer):
- '''
- Applies each rule in the order provided.
- '''
- def __init__(self, rules):
- '''
- Applies each rule in the order provided.
- @param rules: The rules to apply.
- '''
- super(Sequence, self).__init__()
- self.rules = rules
-
- def packet_in(self, packet):
- self.exception = None
- self.is_success = False
- for rule in self.rules:
- packet = rule.packet_in(packet)
- packet.clean()
- if not rule.is_success:
- if rule.exception is not None:
- self.exception = rule.exception
- return packet
- self.is_success = True
- return packet
|