blob: 3b9c2bc23a5549c11ed8909d9aa5ab2cd4fbbe38 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg" width="860" height="410" viewBox="-2 -2 1205 565"
version="1.1">
<metadata id="metadata84">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<style type="text/css">
rect{
fill:#fff;
stroke:#000;
stroke-width:2.14;
}
text{
font-size:14.10753822px;
font-style:normal;
font-weight:normal;
font-family:courier new;
text-anchor:middle;
}
polyline{
fill:none;
stroke:#000;
stroke-width:3.2;
marker-start:url(#arrow);
stroke-dasharray:0, 5, 1000;
}
polyline.noarrow{
marker-start:none;
stroke-dasharray:none;
}
text.gray{
fill:#808080;
}
rect.gray{
stroke:#808080;
}
</style>
<defs>
<marker id="arrow" orient="auto" markerWidth="5"
markerHeight="5" refY="2.5" refX="0">
<path style="fill:#000;" d="M5,0 L0,2.5 L5,5" />
</marker>
</defs>
<g id="value-subtyping">
<g id="sub-top">
<rect x="510" y="0" width="130" height="40" class="gray" />
<text x="575" y="24.10753822px" class="gray">@UnknownVal</text>
</g>
<g id="sub-intval">
<rect x="350" y="90" width="130" height="40" />
<text x="415" y="114.10753822px">@IntVal(long[])</text>
</g>
<g id="sub-intrange">
<rect x="170" y="90" width="170" height="40" />
<text x="255" y="114.10753822px">@IntRange(long,long)</text>
</g>
<g id="sub-doubleval">
<rect x="490" y="90" width="170" height="40" />
<text x="575" y="114.10753822px">@DoubleVal(double[])</text>
</g>
<g id="sub-boolval">
<rect x="0" y="90" width="160" height="40" />
<text x="80" y="114.10753822px">@BoolVal(boolean[])</text>
</g>
<g id="sub-stringval">
<rect x="670" y="90" width="170" height="40" />
<text x="755" y="114.10753822px">@StringVal(String[])</text>
</g>
<g id="sub-arraylen">
<rect x="850" y="90" width="140" height="40" />
<text x="920" y="114.10753822px">@ArrayLen(int[])</text>
</g>
<g id="sub-arraylenrange">
<rect x="1000" y="90" width="200" height="40" />
<text x="1100" y="114.10753822px">@ArrayLenRange(int,int)</text>
</g>
<g id="sub-bot">
<rect x="510" y="180" width="130" height="40" class="gray" />
<text x="575" y="204.10753822px" class="gray">@BottomVal</text>
</g>
<polyline points="575,40 575,90" />
<polyline points="575,65 80,65 80,90" class="noarrow" />
<polyline points="575,65 1100,65 1100,90" class="noarrow" />
<polyline points="255,65 255,90" class="noarrow" />
<polyline points="415,65 415,90" class="noarrow" />
<polyline points="755,65 755,90" class="noarrow" />
<polyline points="920,65 920,90" class="noarrow" />
<polyline points="575,130 575,180" />
<polyline points="80,130 80,155 575,155" />
<polyline points="1100,130 1100,155 570,155" />
<polyline points="255,130 255,155" />
<polyline points="415,130 415,155" />
<polyline points="755,130 755,155" />
<polyline points="920,130 920,155" />
</g>
<g id="numeric-subtyping">
<g id="num-int-range-0-200">
<rect x="35" y="240" width="200" height="40" />
<text x="135" y="264.10753822px">@IntRange(from=0,to=200)</text>
</g>
<g id="num-int-1">
<rect x="310" y="400" width="130" height="40" />
<text x="375" y="424.10753822px">@IntVal(1)</text>
</g>
<g id="num-int-1-2">
<rect x="310" y="320" width="130" height="40" />
<text x="375" y="344.10753822px">@IntVal({1,2})</text>
</g>
<g id="num-int-range-0-1">
<rect x="35" y="320" width="200" height="40" />
<text x="135" y="344.10753822px">@IntRange(from=0,to=1)</text>
</g>
<g id="num-double-1">
<rect x="490" y="320" width="130" height="40" />
<text x="555" y="344.10753822px">@DoubleVal(1.0)</text>
</g>
<g id="num-double-0-2">
<rect x="270" y="240" width="210" height="40" />
<text x="375" y="264.10753822px">@DoubleVal({0.0,1.0,2.0})</text>
</g>
<polyline points="135,280 135,320" />
<polyline points="375,280 375,320" />
<polyline points="375,360 375,400" />
<polyline points="195,280 315,320" />
<polyline points="315,280 195,320" />
<polyline points="435,280 555,320" />
<polyline points="195,360 315,400" />
<polyline points="555,360 435,400" />
</g>
<g id="array-subtyping">
<g id="string-a">
<rect x="800" y="520" width="130" height="40" />
<text x="865" y="544.10753822px">@StringVal("a")</text>
</g>
<g id="string-a-aa">
<rect x="650" y="450" width="190" height="40" />
<text x="745" y="474.10753822px">@StringVal({"a","aa"})</text>
</g>
<g id="string-a-b">
<rect x="895" y="450" width="180" height="40" />
<text x="985" y="474.10753822px">@StringVal({"a","b"})</text>
</g>
<g id="string-a-aa-b">
<rect x="755" y="380" width="220" height="40" />
<text x="865" y="404.10753822px">@StringVal({"a","aa","b"})</text>
</g>
<g id="matches-regex-a-star">
<rect x="650" y="320" width="170" height="40" />
<text x="740" y="344.10753822px">@MatchesRegex("a*")</text>
</g>
<g id="matches-regex-a-star-b-star">
<rect x="630" y="240" width="230" height="40" />
<text x="745" y="264.10753822px">@MatchesRegex({"a*", "b*"})</text>
</g>
<g id="arraylen-1">
<rect x="1040" y="380" width="130" height="40" />
<text x="1105" y="404.10753822px">@ArrayLen(1)</text>
</g>
<g id="arraylen-1-2">
<rect x="915" y="310" width="140" height="40" />
<text x="985" y="334.10753822px">@ArrayLen({1,2})</text>
</g>
<g id="arraylenrange">
<rect x="895" y="240" width="180" height="40" />
<text x="985" y="264.10753822px">@ArrayLenRange(0,200)</text>
</g>
<polyline points="985,280 985,310" />
<polyline points="1015,350 1075,380" />
<polyline points="955,350 895,380" />
<polyline points="835,420 775,450" />
<polyline points="895,420 955,450" />
<polyline points="1075,420 1015,450" />
<polyline points="955,490 895,520" />
<polyline points="775,490 835,520" />
<polyline points="720,360 720,450" />
<polyline points="720,280 720,320" />
<polyline points="820,280 870,380" />
</g>
</svg>