| |
| \input{header} |
| \begin{tikzpicture} |
| |
| \begin{component}{20cm}{1}{0}{CachedGreeterComponent with replacement} |
| |
| \begin{component}{4cm}{7.5}{0}{GreeterComponent} |
| \end{component} |
| |
| \begin{component}{4cm}{7.5}{2.5}{FakeKeyValueStorageComponent} |
| \end{component} |
| |
| \newcomponent{0}{1.3}{CachedGreeterImpl} |
| |
| \umlassemblyconnector[interface=Greeter]{GreeterComponent}{CachedGreeterImpl} |
| \umlassemblyconnector[interface=KeyValueStorage]{FakeKeyValueStorageComponent}{CachedGreeterImpl} |
| |
| \umlprovidedinterface[interface={Annotated<Cached,Greeter>}, distance=4.3, with port, padding=2.1cm]{CachedGreeterImpl} |
| |
| \end{component} |
| \umlprovidedinterface[interface={Annotated<Cached,Greeter>}, distance=11.2, with port, padding=0.2cm]{CachedGreeterComponent with replacement} |
| |
| \umldep{CachedGreeterImpl-west-interface}{CachedGreeterComponent with replacement-west-port} |
| |
| \end{tikzpicture} |
| \input{footer} |