ef71a5b311
Change-Id: I64dce168322cf607951bada5ac0eb19f80c4b09e
1 line
36 KiB
XML
1 line
36 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="1040px" style="width:2216px;height:1040px;" version="1.1" viewBox="0 0 2216 1040" width="2216px"><defs><filter height="300%" id="f1" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="265" x="980.5" y="16.708">Pluggable Protection Provider</text><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="120" x="1696.5" y="210.9531"/><ellipse cx="1711.5" cy="226.9531" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1714.4688,232.5938 Q1713.8906,232.8906 1713.25,233.0391 Q1712.6094,233.1875 1711.9063,233.1875 Q1709.4063,233.1875 1708.0859,231.5391 Q1706.7656,229.8906 1706.7656,226.7656 Q1706.7656,223.6406 1708.0859,221.9844 Q1709.4063,220.3281 1711.9063,220.3281 Q1712.6094,220.3281 1713.2578,220.4844 Q1713.9063,220.6406 1714.4688,220.9375 L1714.4688,223.6563 Q1713.8438,223.0781 1713.25,222.8047 Q1712.6563,222.5313 1712.0313,222.5313 Q1710.6875,222.5313 1710,223.6016 Q1709.3125,224.6719 1709.3125,226.7656 Q1709.3125,228.8594 1710,229.9297 Q1710.6875,231 1712.0313,231 Q1712.6563,231 1713.25,230.7266 Q1713.8438,230.4531 1714.4688,229.875 L1714.4688,232.5938 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="88" x="1725.5" y="231.1074">ResourceType</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1697.5" x2="1815.5" y1="242.9531" y2="242.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1697.5" x2="1815.5" y1="250.9531" y2="250.9531"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="69" x="2003" y="47.9531"/><ellipse cx="2018" cy="63.9531" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2020.9688,69.5938 Q2020.3906,69.8906 2019.75,70.0391 Q2019.1094,70.1875 2018.4063,70.1875 Q2015.9063,70.1875 2014.5859,68.5391 Q2013.2656,66.8906 2013.2656,63.7656 Q2013.2656,60.6406 2014.5859,58.9844 Q2015.9063,57.3281 2018.4063,57.3281 Q2019.1094,57.3281 2019.7578,57.4844 Q2020.4063,57.6406 2020.9688,57.9375 L2020.9688,60.6563 Q2020.3438,60.0781 2019.75,59.8047 Q2019.1563,59.5313 2018.5313,59.5313 Q2017.1875,59.5313 2016.5,60.6016 Q2015.8125,61.6719 2015.8125,63.7656 Q2015.8125,65.8594 2016.5,66.9297 Q2017.1875,68 2018.5313,68 Q2019.1563,68 2019.75,67.7266 Q2020.3438,67.4531 2020.9688,66.875 L2020.9688,69.5938 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="37" x="2032" y="68.1074">String</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2004" x2="2071" y1="79.9531" y2="79.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2004" x2="2071" y1="87.9531" y2="87.9531"/><rect fill="#FEFECE" filter="url(#f1)" height="73.6094" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="1418.5" y="197.9531"/><ellipse cx="1454.65" cy="213.9531" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1457.6188,219.5938 Q1457.0406,219.8906 1456.4,220.0391 Q1455.7594,220.1875 1455.0563,220.1875 Q1452.5563,220.1875 1451.2359,218.5391 Q1449.9156,216.8906 1449.9156,213.7656 Q1449.9156,210.6406 1451.2359,208.9844 Q1452.5563,207.3281 1455.0563,207.3281 Q1455.7594,207.3281 1456.4078,207.4844 Q1457.0563,207.6406 1457.6188,207.9375 L1457.6188,210.6563 Q1456.9938,210.0781 1456.4,209.8047 Q1455.8063,209.5313 1455.1813,209.5313 Q1453.8375,209.5313 1453.15,210.6016 Q1452.4625,211.6719 1452.4625,213.7656 Q1452.4625,215.8594 1453.15,216.9297 Q1453.8375,218 1455.1813,218 Q1455.8063,218 1456.4,217.7266 Q1456.9938,217.4531 1457.6188,216.875 L1457.6188,219.5938 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="1473.35" y="218.1074">Resource</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1419.5" x2="1555.5" y1="229.9531" y2="229.9531"/><ellipse cx="1429.5" cy="241.8555" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="1438.5" y="244.1636">type: ResourceType</text><ellipse cx="1429.5" cy="254.6602" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="1438.5" y="256.9683">id: UUID</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1419.5" x2="1555.5" y1="263.5625" y2="263.5625"/><rect fill="#FEFECE" filter="url(#f1)" height="73.6094" style="stroke: #A80036; stroke-width: 1.5;" width="269" x="1062" y="197.9531"/><ellipse cx="1127.25" cy="213.9531" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1130.2188,219.5938 Q1129.6406,219.8906 1129,220.0391 Q1128.3594,220.1875 1127.6563,220.1875 Q1125.1563,220.1875 1123.8359,218.5391 Q1122.5156,216.8906 1122.5156,213.7656 Q1122.5156,210.6406 1123.8359,208.9844 Q1125.1563,207.3281 1127.6563,207.3281 Q1128.3594,207.3281 1129.0078,207.4844 Q1129.6563,207.6406 1130.2188,207.9375 L1130.2188,210.6563 Q1129.5938,210.0781 1129,209.8047 Q1128.4063,209.5313 1127.7813,209.5313 Q1126.4375,209.5313 1125.75,210.6016 Q1125.0625,211.6719 1125.0625,213.7656 Q1125.0625,215.8594 1125.75,216.9297 Q1126.4375,218 1127.7813,218 Q1128.4063,218 1129,217.7266 Q1129.5938,217.4531 1130.2188,216.875 L1130.2188,219.5938 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="130" x="1147.75" y="218.1074">ResourceGraphNode</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1063" x2="1330" y1="229.9531" y2="229.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="1068" y="244.1636">resource: Resource</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="257" x="1068" y="256.9683">dependent_resources: []ResourceGraphNode</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1063" x2="1330" y1="263.5625" y2="263.5625"/><rect fill="#FEFECE" filter="url(#f1)" height="86.4141" style="stroke: #A80036; stroke-width: 1.5;" width="326" x="666.5" y="191.9531"/><ellipse cx="755.75" cy="207.9531" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M758.7188,213.5938 Q758.1406,213.8906 757.5,214.0391 Q756.8594,214.1875 756.1563,214.1875 Q753.6563,214.1875 752.3359,212.5391 Q751.0156,210.8906 751.0156,207.7656 Q751.0156,204.6406 752.3359,202.9844 Q753.6563,201.3281 756.1563,201.3281 Q756.8594,201.3281 757.5078,201.4844 Q758.1563,201.6406 758.7188,201.9375 L758.7188,204.6563 Q758.0938,204.0781 757.5,203.8047 Q756.9063,203.5313 756.2813,203.5313 Q754.9375,203.5313 754.25,204.6016 Q753.5625,205.6719 753.5625,207.7656 Q753.5625,209.8594 754.25,210.9297 Q754.9375,212 756.2813,212 Q756.9063,212 757.5,211.7266 Q758.0938,211.4531 758.7188,210.875 L758.7188,213.5938 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="139" x="776.25" y="212.1074">ResourceGraphWalker</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="991.5" y1="223.9531" y2="223.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="991.5" y1="231.9531" y2="231.9531"/><ellipse cx="677.5" cy="243.8555" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="252" x="686.5" y="246.1636">constructor(sources: []ResourceGraphNode)</text><ellipse cx="677.5" cy="256.6602" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="300" x="686.5" y="258.9683">add_listener(listener: ResourceGraphWalkerListener)</text><ellipse cx="677.5" cy="269.4648" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="686.5" y="271.7729">walk()</text><rect fill="#FEFECE" filter="url(#f1)" height="73.6094" style="stroke: #A80036; stroke-width: 1.5;" width="386" x="636.5" y="407.9531"/><ellipse cx="730.75" cy="423.9531" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M726.6719,419.7188 L726.6719,417.5625 L734.0625,417.5625 L734.0625,419.7188 L731.5938,419.7188 L731.5938,427.7969 L734.0625,427.7969 L734.0625,429.9531 L726.6719,429.9531 L726.6719,427.7969 L729.1406,427.7969 L729.1406,419.7188 L726.6719,419.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="189" x="751.25" y="428.1074">ResourceGraphWalkerListener</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="1021.5" y1="439.9531" y2="439.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="637.5" x2="1021.5" y1="447.9531" y2="447.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="374" x="642.5" y="462.1636">on_node_enter(node: ResourceGraphNode, is_first_visit: boolean)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="364" x="642.5" y="474.9683">on_node_exit(node: ResourceGraphNode, is_first_visit: boolean)</text><rect fill="#FEFECE" filter="url(#f1)" height="86.4141" style="stroke: #A80036; stroke-width: 1.5;" width="392" x="1079.5" y="28.9531"/><ellipse cx="1209.75" cy="44.9531" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1212.7188,50.5938 Q1212.1406,50.8906 1211.5,51.0391 Q1210.8594,51.1875 1210.1563,51.1875 Q1207.6563,51.1875 1206.3359,49.5391 Q1205.0156,47.8906 1205.0156,44.7656 Q1205.0156,41.6406 1206.3359,39.9844 Q1207.6563,38.3281 1210.1563,38.3281 Q1210.8594,38.3281 1211.5078,38.4844 Q1212.1563,38.6406 1212.7188,38.9375 L1212.7188,41.6563 Q1212.0938,41.0781 1211.5,40.8047 Q1210.9063,40.5313 1210.2813,40.5313 Q1208.9375,40.5313 1208.25,41.6016 Q1207.5625,42.6719 1207.5625,44.7656 Q1207.5625,46.8594 1208.25,47.9297 Q1208.9375,49 1210.2813,49 Q1210.9063,49 1211.5,48.7266 Q1212.0938,48.4531 1212.7188,47.875 L1212.7188,50.5938 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="123" x="1230.25" y="49.1074">ProtectableRegistry</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1080.5" x2="1470.5" y1="60.9531" y2="60.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1080.5" x2="1470.5" y1="68.9531" y2="68.9531"/><ellipse cx="1090.5" cy="80.8555" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="347" x="1099.5" y="83.1636">fetch_dependant_resources(resource: Resource): []Resource</text><line style="stroke: #000000; stroke-width: 1.0;" x1="1099.5" x2="1446.5" y1="85.1636" y2="85.1636"/><ellipse cx="1090.5" cy="93.6602" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="366" x="1099.5" y="95.9683">register(resource_type: ResourceType, protectable: Protectable)</text><line style="stroke: #000000; stroke-width: 1.0;" x1="1099.5" x2="1465.5" y1="97.9683" y2="97.9683"/><ellipse cx="1090.5" cy="106.4648" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="331" x="1099.5" y="108.7729">list_resources(resource_type: ResourceType): [] Resource</text><line style="stroke: #000000; stroke-width: 1.0;" x1="1099.5" x2="1430.5" y1="110.7729" y2="110.7729"/><rect fill="#FEFECE" filter="url(#f1)" height="86.4141" style="stroke: #A80036; stroke-width: 1.5;" width="427" x="1541" y="28.9531"/><ellipse cx="1714.25" cy="44.9531" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1710.1719,40.7188 L1710.1719,38.5625 L1717.5625,38.5625 L1717.5625,40.7188 L1715.0938,40.7188 L1715.0938,48.7969 L1717.5625,48.7969 L1717.5625,50.9531 L1710.1719,50.9531 L1710.1719,48.7969 L1712.6406,48.7969 L1712.6406,40.7188 L1710.1719,40.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="72" x="1734.75" y="49.1074">Protectable</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1542" x2="1967" y1="60.9531" y2="60.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1542" x2="1967" y1="68.9531" y2="68.9531"/><ellipse cx="1552" cy="80.8555" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="401" x="1561" y="83.1636">possible_parent_types(resource_type: ResourceType): []ResourceType</text><ellipse cx="1552" cy="93.6602" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="313" x="1561" y="95.9683">fetch_child_resources(resource: Resource): []Resource</text><ellipse cx="1552" cy="106.4648" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="327" x="1561" y="108.7729">list_resources(resource_type: ResourceType): []Resource</text><rect fill="#FEFECE" filter="url(#f1)" height="112.0234" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="504.5" y="794.9531"/><ellipse cx="519.5" cy="810.9531" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M523.6094,816.9531 L515.8906,816.9531 L515.8906,804.5625 L523.6094,804.5625 L523.6094,806.7188 L518.3438,806.7188 L518.3438,809.3906 L523.1094,809.3906 L523.1094,811.5469 L518.3438,811.5469 L518.3438,814.7969 L523.6094,814.7969 L523.6094,816.9531 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="533.5" y="815.1074">Operation</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="505.5" x2="597.5" y1="826.9531" y2="826.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="510.5" y="841.1636">protect</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="510.5" y="853.9683">start</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="510.5" y="866.7729">suspend</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="42" x="510.5" y="879.5776">restore</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="35" x="510.5" y="892.3823">delete</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="505.5" x2="597.5" y1="898.9766" y2="898.9766"/><rect fill="#FEFECE" filter="url(#f1)" height="137.6328" style="stroke: #A80036; stroke-width: 1.5;" width="202" x="223.5" y="595.9531"/><ellipse cx="296.25" cy="611.9531" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M299.2188,617.5938 Q298.6406,617.8906 298,618.0391 Q297.3594,618.1875 296.6563,618.1875 Q294.1563,618.1875 292.8359,616.5391 Q291.5156,614.8906 291.5156,611.7656 Q291.5156,608.6406 292.8359,606.9844 Q294.1563,605.3281 296.6563,605.3281 Q297.3594,605.3281 298.0078,605.4844 Q298.6563,605.6406 299.2188,605.9375 L299.2188,608.6563 Q298.5938,608.0781 298,607.8047 Q297.4063,607.5313 296.7813,607.5313 Q295.4375,607.5313 294.75,608.6016 Q294.0625,609.6719 294.0625,611.7656 Q294.0625,613.8594 294.75,614.9297 Q295.4375,616 296.7813,616 Q297.4063,616 298,615.7266 Q298.5938,615.4531 299.2188,614.875 L299.2188,617.5938 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="48" x="316.75" y="616.1074">Context</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="224.5" x2="424.5" y1="627.9531" y2="627.9531"/><ellipse cx="234.5" cy="639.8555" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="243.5" y="642.1636">plan: ProtectionPlan</text><ellipse cx="234.5" cy="652.6602" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="118" x="243.5" y="654.9683">operation: Operation</text><ellipse cx="234.5" cy="665.4648" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="95" x="243.5" y="667.7729">parameters: dict</text><ellipse cx="234.5" cy="678.2695" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="243.5" y="680.5776">resource: ResourceGraphNode</text><ellipse cx="234.5" cy="691.0742" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="152" x="243.5" y="693.3823">bank_section: BankSection</text><ellipse cx="234.5" cy="703.8789" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="243.5" y="706.187">is_first_visit: boolean</text><ellipse cx="234.5" cy="716.6836" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="243.5" y="718.9917">task_builder: TaskBuilder</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="224.5" x2="424.5" y1="725.5859" y2="725.5859"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="2107.5" y="47.9531"/><ellipse cx="2122.5" cy="63.9531" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2118.4219,59.7188 L2118.4219,57.5625 L2125.8125,57.5625 L2125.8125,59.7188 L2123.3438,59.7188 L2123.3438,67.7969 L2125.8125,67.7969 L2125.8125,69.9531 L2118.4219,69.9531 L2118.4219,67.7969 L2120.8906,67.7969 L2120.8906,59.7188 L2118.4219,59.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="68" x="2136.5" y="68.1074">BankPlugin</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2108.5" x2="2206.5" y1="79.9531" y2="79.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2108.5" x2="2206.5" y1="87.9531" y2="87.9531"/><rect fill="#FEFECE" filter="url(#f1)" height="60.8047" style="stroke: #A80036; stroke-width: 1.5;" width="120" x="24.5" y="820.4531"/><ellipse cx="44" cy="836.4531" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M39.9219,832.2188 L39.9219,830.0625 L47.3125,830.0625 L47.3125,832.2188 L44.8438,832.2188 L44.8438,840.2969 L47.3125,840.2969 L47.3125,842.4531 L39.9219,842.4531 L39.9219,840.2969 L42.3906,840.2969 L42.3906,832.2188 L39.9219,832.2188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="78" x="59" y="840.6074">BankSection</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="25.5" x2="143.5" y1="852.4531" y2="852.4531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="25.5" x2="143.5" y1="860.4531" y2="860.4531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="30.5" y="874.6636">is_writeable(): bool</text><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="6" y="640.9531"/><ellipse cx="21" cy="656.9531" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M16.9219,652.7188 L16.9219,650.5625 L24.3125,650.5625 L24.3125,652.7188 L21.8438,652.7188 L21.8438,660.7969 L24.3125,660.7969 L24.3125,662.9531 L16.9219,662.9531 L16.9219,660.7969 L19.3906,660.7969 L19.3906,652.7188 L16.9219,652.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="125" x="35" y="661.1074">BankPluginInterface</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="162" y1="672.9531" y2="672.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="162" y1="680.9531" y2="680.9531"/><rect fill="#FEFECE" filter="url(#f1)" height="73.6094" style="stroke: #A80036; stroke-width: 1.5;" width="289" x="180" y="813.9531"/><ellipse cx="284.75" cy="829.9531" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M280.6719,825.7188 L280.6719,823.5625 L288.0625,823.5625 L288.0625,825.7188 L285.5938,825.7188 L285.5938,833.7969 L288.0625,833.7969 L288.0625,835.9531 L280.6719,835.9531 L280.6719,833.7969 L283.1406,833.7969 L283.1406,825.7188 L280.6719,825.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="71" x="305.25" y="834.1074">TaskBuilder</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="181" x2="468" y1="845.9531" y2="845.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="181" x2="468" y1="853.9531" y2="853.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="277" x="186" y="868.1636">add_task(target: function, args=collection): Task</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="156" x="186" y="880.9683">link_tasks(a: Task, b: Task)</text><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="294.5" y="983.9531"/><ellipse cx="309.5" cy="999.9531" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M305.4219,995.7188 L305.4219,993.5625 L312.8125,993.5625 L312.8125,995.7188 L310.3438,995.7188 L310.3438,1003.7969 L312.8125,1003.7969 L312.8125,1005.9531 L305.4219,1005.9531 L305.4219,1003.7969 L307.8906,1003.7969 L307.8906,995.7188 L305.4219,995.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="28" x="323.5" y="1004.1074">Task</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="295.5" x2="353.5" y1="1015.9531" y2="1015.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="295.5" x2="353.5" y1="1023.9531" y2="1023.9531"/><polygon fill="#FBFB77" filter="url(#f1)" points="110.5,995.4531,110.5,1020.5859,224.5,1020.5859,224.5,1005.4531,214.5,995.4531,110.5,995.4531" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FBFB77" points="110.5,995.4531,110.5,1020.5859,224.5,1020.5859,224.5,1013.4531,294.432,1007.9531,224.5,1005.4531,224.5,1005.4531,214.5,995.4531,110.5,995.4531" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="214.5" x2="214.5" y1="995.4531" y2="1005.4531"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="224.5" x2="214.5" y1="1005.4531" y2="1005.4531"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="93" x="116.5" y="1012.52">Opaque object</text><rect fill="#FEFECE" filter="url(#f1)" height="180.0469" style="stroke: #A80036; stroke-width: 1.5;" width="420" x="114.5" y="354.9531"/><ellipse cx="269.75" cy="370.9531" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M265.6719,366.7188 L265.6719,364.5625 L273.0625,364.5625 L273.0625,366.7188 L270.5938,366.7188 L270.5938,374.7969 L273.0625,374.7969 L273.0625,376.9531 L265.6719,376.9531 L265.6719,374.7969 L268.1406,374.7969 L268.1406,366.7188 L265.6719,366.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="101" x="290.25" y="375.1074">ProtectionPlugin</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="115.5" x2="533.5" y1="386.9531" y2="386.9531"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="287" x="120.5" y="417.9683">get_supported_resources_types(): []ResourceType</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="115.5" x2="269.5" y1="401.3555" y2="401.3555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="269.5" y="404.6636">metadata functions</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="379.5" x2="533.5" y1="401.3555" y2="401.3555"/><ellipse cx="125.5" cy="445.2695" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="204" x="134.5" y="447.5776">on_resource_start(context: Context)</text><ellipse cx="125.5" cy="458.0742" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="134.5" y="460.3823">on_resource_end(context: Context)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="115.5" x2="265.5" y1="430.9648" y2="430.9648"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="118" x="265.5" y="434.2729">graph walk functions</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="383.5" x2="533.5" y1="430.9648" y2="430.9648"/><ellipse cx="125.5" cy="487.6836" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="294" x="134.5" y="489.9917">get_options_schema(resource_type: ResourceType)</text><ellipse cx="125.5" cy="500.4883" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="313" x="134.5" y="502.7964">get_saved_info_schema(resource_type: ResourceType)</text><ellipse cx="125.5" cy="513.293" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="294" x="134.5" y="515.6011">get_restore_schema(resource_type: ResourceType)</text><ellipse cx="125.5" cy="526.0977" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="394" x="134.5" y="528.4058">get_saved_info(metadata_store: MetadataStore, resource: Resource)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="115.5" x2="274" y1="473.3789" y2="473.3789"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="274" y="476.687">schema functions</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="375" x2="533.5" y1="473.3789" y2="473.3789"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="251.5" y="47.9531"/><ellipse cx="266.5" cy="63.9531" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M262.4219,59.7188 L262.4219,57.5625 L269.8125,57.5625 L269.8125,59.7188 L267.3438,59.7188 L267.3438,67.7969 L269.8125,67.7969 L269.8125,69.9531 L262.4219,69.9531 L262.4219,67.7969 L264.8906,67.7969 L264.8906,59.7188 L262.4219,59.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="114" x="280.5" y="68.1074">ProtectionProvider</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="252.5" x2="396.5" y1="79.9531" y2="79.9531"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="252.5" x2="396.5" y1="87.9531" y2="87.9531"/><rect fill="#FEFECE" filter="url(#f1)" height="60.8047" style="stroke: #A80036; stroke-width: 1.5;" width="254" x="197.5" y="204.4531"/><ellipse cx="232.3" cy="220.4531" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M235.2688,226.0938 Q234.6906,226.3906 234.05,226.5391 Q233.4094,226.6875 232.7063,226.6875 Q230.2063,226.6875 228.8859,225.0391 Q227.5656,223.3906 227.5656,220.2656 Q227.5656,217.1406 228.8859,215.4844 Q230.2063,213.8281 232.7063,213.8281 Q233.4094,213.8281 234.0578,213.9844 Q234.7063,214.1406 235.2688,214.4375 L235.2688,217.1563 Q234.6438,216.5781 234.05,216.3047 Q233.4563,216.0313 232.8313,216.0313 Q231.4875,216.0313 230.8,217.1016 Q230.1125,218.1719 230.1125,220.2656 Q230.1125,222.3594 230.8,223.4297 Q231.4875,224.5 232.8313,224.5 Q233.4563,224.5 234.05,224.2266 Q234.6438,223.9531 235.2688,223.375 L235.2688,226.0938 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="178" x="250.7" y="224.6074">PluggableProtectionProvider</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="198.5" x2="450.5" y1="236.4531" y2="236.4531"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="205.5" y="245.3555"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="228" x="217.5" y="250.6636">plugins: [ResourceType]ProtectionPlugin</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="198.5" x2="450.5" y1="257.2578" y2="257.2578"/><path d="M1994.87,108.4821 C1991.75,110.7411 1988.61,112.9211 1985.5,114.9531 C1927.38,152.9731 1855.69,188.5771 1808.17,210.7541 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="1990.9,102.6991,2011.02,96.0351,1999.45,113.7881,1990.9,102.6991" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1344.12,223.0331 C1357.55,225.5111 1366,229.4851 1366,234.9531 C1366,242.0231 1351.88,246.5941 1331.12,248.6661 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="1331.12,221.2401,1336.519,226.0204,1343.0081,222.8753,1337.6091,218.095,1331.12,221.2401" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1339.134" y="217.0958">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="1339.1109" y="246.0871">0..*</text><path d="M829.5,278.0451 C829.5,316.1501 829.5,371.6881 829.5,407.8221 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1344.46,234.9531 C1369.04,234.9531 1393.62,234.9531 1418.2,234.9531 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1331.2,234.9531,1337.2,238.9531,1343.2,234.9531,1337.2,230.9531,1331.2,234.9531" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1330.92,115.0441 C1363.33,139.6531 1403.97,170.5191 1435.73,194.6351 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1439.95,197.8421,1435.2086,189.2097,1435.9705,194.815,1430.3652,195.5769,1439.95,197.8421" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="92" x="1388.5" y="158.02"><<creates>></text><path d="M1485.17,71.9531 C1503.76,71.9531 1522.35,71.9531 1540.94,71.9531 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1471.96,71.9531,1477.96,75.9531,1483.96,71.9531,1477.96,67.9531,1471.96,71.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1479.7905" y="68.7216">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="1526.1394" y="68.7454">*</text><path d="M1569.69,234.9531 C1611.92,234.9531 1654.14,234.9531 1696.37,234.9531 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1556.59,234.9531,1562.59,238.9531,1568.59,234.9531,1562.59,230.9531,1556.59,234.9531" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M84.5,709.5821 C84.5,743.6891 84.5,790.1901 84.5,820.1471 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="77.5001,709.2571,84.5,689.2571,91.5001,709.2571,77.5001,709.2571" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M324.5,747.3631 C324.5,770.6071 324.5,794.7661 324.5,813.7961 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="324.5,734.2061,320.5,740.2061,324.5,746.2061,328.5,740.2061,324.5,734.2061" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M224.948,742.2761 C189.113,769.7501 150.771,799.1451 123.217,820.2701 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="235.474,734.2061,228.2786,734.6817,225.9502,741.5066,233.1456,741.031,235.474,734.2061" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M324.5,888.2941 C324.5,915.8611 324.5,953.2163 324.5,978.5985 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="324.5,983.8252,328.5,974.8252,324.5,978.8252,320.5,974.8252,324.5,983.8252" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="50" x="325.5" y="950.02">Creates</text><path d="M411.059,734.1011 C435.566,753.6061 462.185,774.9921 486.5,794.9531 C492.327,799.7371 498.412,804.7971 504.421,809.8341 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M324.5,535.2511 C324.5,555.4761 324.5,576.6361 324.5,595.8221 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M324.5,116.3951 C324.5,144.2651 324.5,179.7161 324.5,204.3651 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="317.5,116.0201,324.5,96.0201,331.5,116.0201,317.5,116.0201" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M324.5,278.9751 C324.5,300.9401 324.5,328.5161 324.5,354.7991 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="324.5,265.7541,320.5,271.7541,324.5,277.7541,328.5,271.7541,324.5,265.7541" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="325.5" y="321.02">Uses for functionality</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="300.5477" y="343.7826">1..*</text><path d="M451.607,234.9531 C515.109,234.9531 592.792,234.9531 661.174,234.9531 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="666.499,234.9531,657.499,230.9531,661.499,234.9531,657.499,238.9531,666.499,234.9531" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="178" x="470" y="228.02">uses it to iterate over graph</text><path d="M992.571,234.9531 C1015.67,234.9531 1038.77,234.9531 1061.88,234.9531 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/></g></svg> |