1*a65addddSAndroid Build Coastguard Worker 2*a65addddSAndroid Build Coastguard Worker\input{header} 3*a65addddSAndroid Build Coastguard Worker\begin{tikzpicture} 4*a65addddSAndroid Build Coastguard Worker 5*a65addddSAndroid Build Coastguard Worker\begin{component}{20cm}{1}{0}{CachedGreeterComponent with replacement} 6*a65addddSAndroid Build Coastguard Worker 7*a65addddSAndroid Build Coastguard Worker\begin{component}{4cm}{7.5}{0}{GreeterComponent} 8*a65addddSAndroid Build Coastguard Worker\end{component} 9*a65addddSAndroid Build Coastguard Worker 10*a65addddSAndroid Build Coastguard Worker\begin{component}{4cm}{7.5}{2.5}{FakeKeyValueStorageComponent} 11*a65addddSAndroid Build Coastguard Worker\end{component} 12*a65addddSAndroid Build Coastguard Worker 13*a65addddSAndroid Build Coastguard Worker\newcomponent{0}{1.3}{CachedGreeterImpl} 14*a65addddSAndroid Build Coastguard Worker 15*a65addddSAndroid Build Coastguard Worker\umlassemblyconnector[interface=Greeter]{GreeterComponent}{CachedGreeterImpl} 16*a65addddSAndroid Build Coastguard Worker\umlassemblyconnector[interface=KeyValueStorage]{FakeKeyValueStorageComponent}{CachedGreeterImpl} 17*a65addddSAndroid Build Coastguard Worker 18*a65addddSAndroid Build Coastguard Worker\umlprovidedinterface[interface={Annotated<Cached,Greeter>}, distance=4.3, with port, padding=2.1cm]{CachedGreeterImpl} 19*a65addddSAndroid Build Coastguard Worker 20*a65addddSAndroid Build Coastguard Worker\end{component} 21*a65addddSAndroid Build Coastguard Worker\umlprovidedinterface[interface={Annotated<Cached,Greeter>}, distance=11.2, with port, padding=0.2cm]{CachedGreeterComponent with replacement} 22*a65addddSAndroid Build Coastguard Worker 23*a65addddSAndroid Build Coastguard Worker\umldep{CachedGreeterImpl-west-interface}{CachedGreeterComponent with replacement-west-port} 24*a65addddSAndroid Build Coastguard Worker 25*a65addddSAndroid Build Coastguard Worker\end{tikzpicture} 26*a65addddSAndroid Build Coastguard Worker\input{footer} 27