Reference Guide

Table Of Contents
Figure 16 OpenFlow Message Class Diagram
Each mutable subclass includes a private Mutable object that determines whether the instance is still
writable. While writable, the “payload” of the mutable message can be set. Once the message
has been made immutable, the mutable instance is marked as “no longer writable”; any attempt to
change its state will result in an InvalidMutableException being thrown.
Note that messages are passive in nature as they are simply data carriers.
Note also that structures (e.g. a Match) have a very similar class relationship.
Factories
Messages and structures are parsed or created by factories. Since the factories are all about
processing, but contain no state, the APIs consist entirely of static methods. Openflow messages are
created, encoded, or parsed by the MessageFactory class. Supporting structures are created,
encoded, or parsed by supporting factories, e.g. MatchFactory, FieldFactory, PortFactory, etc.
The main factory that application developers will deal with is the MessageFactory:
30